((1)-(10)每题2分,(11)-(50)每题1分,共60分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
A) 自顶向下
B)逐步求精
C)模块化
D)可复用
A)耦合度
B)内聚度
C)复杂度
D)数据传输特性
A)软件测试应该由程序开发者来完成
B)程序经调试后一般不需要再测试
C)软件维护只包括对程序代码的维护
D)以上三种说法都不对
A)队列
B)栈
C)双向链表
D)二叉树
A)线性链表是线性表的链式存储结构
B)栈与队列是非线性结构
C)双向链表是非线性结构
D)只有根结点的二叉树是线性结构
进行后序遍历的结果为 D
A) ABCDEF
B) DBEAFC
C) ABDECF
D) DEBFCA
A)32
B)31
C)64
D)63
A)一对一
B)一对多
C)多对一
D)多对多
A)矩形
B)椭圆形
C)菱形
D)三角形
A)DB包含DBS和DBMS
B)DBMS包含DB和DBS
C)DBS包含DB和DBMS
D)没有任何关系
A)j2_KEY
B)Double
C) 4d
D) _8_
A)011
B)lel
C) 8.0 E0.5
D) 0xabcd
A)'\018'
B '\"'
C) '\\'
D) ‘\xcc'
A)4.3
B) 4.8
C) 3.3
D) 3.8
A)char str[]={‘\064'};
B) char str="\x43";
C) char str=";
D) char str[]="\0";
A) int x[][3]={0};
B) int x[2][3]={{1,2},{3,4},{5,6}};
C) nt x[][3]={{1,2,3},{4,5,6}};
D)int x[2][3]={1,2,3,4,5,6};
A)getc()
B) gets()
C) getchar()
D) scanf()
A. #include<stdio.h> main( ); { /*/Programming /*/ print("programming!\n"); } B. #include<stdio.h> main( ) { /*programming*/ printf("programming!\n"); } C. #include<stdio.h> main( ) { /*/*programming*/*/ printf("programming!\n"); } D. include<stdio.h> main( ) { /*programming*/ printf("programming!\n"); }
A)switch(x) B) switch((int)x); {case 1.0: printf("*\n"); {case 1: printf("*\n"); Case 2.0: printf("**\n"); }case 2: printf("**\n");} C) switch(a+b) D)switch(a+b) { case 1: printf("*\n"); {case 1: printf(*\n"); case 2+1: printf("**\n");} case c: printf("**\n");}
A) main() { …… x=fun(2,10); …… } float fun(int a,int b){ …… } B) float fun(int a,int b){ …… } main() { …… x=fun(i,j); …… } C) float fun(int,int); main() { …… x=fun(2,10); …… } float fun(int a,int b) { …… } D) main() { float fun(int i,int j); …… x=fun(i,j); …… } float fun(int a,int b){ …… }
A)(!E==0)
B) (E>0||E<0)
C) (E==0)
D) (E!=0)
A) while((ch=getchar())!='N') printf("%c",ch);
B) while(ch=getchar()!='N') printf("%c",ch);
C) while(ch=getchar()==N') printf("%c",ch);
D) while((ch=getchar())=='N') printf("%c",ch);
int fun(int *p) { return *p; }
fun 函数返回值是
A)不确定的值
B)一个整数
C)形参p中存放的值
D)形参p的地址值
A)*p=&a; scanf("%lf",p);
B)*p=&a; scanf("%f",p);
C) p=&a; scanf("%lf",*p);
D)p=&a; scanf("%lf",p);
struct node { char data; struct node *next; }*p,*q,*r;
现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是 D
A)q->next=r->next; p->next=r; r->next=q;
B) p->next=r; q->next=r->next; r->next=q;
C) q->next=r->next; r->next=q; p->next=r;
D) r->next=q; p-next=r; q-next=r->next;
struct st { int x; int *y; }*pt; int a[]={1,2},b[]={3,4}; struct st c[2]={10,a,20,b}; pt=c;
以下选项中表达式的值为11的是 C
A) *pt->y
B) pt->x
C) ++pt->x
D) (pt++)->x
A)EOF
B)非0值
C) 0
D)NULL
int a=1,b=2,c; c=a^(b<<2);
执行后,c的值为 D
A) 6
B) 7
C) 8
D) 9
#include<stdio.h> main() { char c1,c2,c3,c4,c5,c6; scanf("%c%c%c%c",&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf("%c%c\n",c5,c6); }
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是 D
A)1267
B)1256
C) 1278
D)1245
main() { int y=10; while(y--); printf("y=%d\n"y); }
程序运行后的输出结果是 D
A)y=0
B) y=-1
C) y=1
D) while构成无限循环
main() { int a=0,b=0,c=0,d=0; if(a=1) b=1; c=2; else d=3; printf("%d,%d,%d,%d\n",a,b,c,d); } // illegal else without matching if
程序输出 D
A)0,1,2,0
B) 0,0,0,3
C)1,1,2,0
D)编译有错
main() { int i,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<=3;j++) { if(j%2) continue; x++; } x++; } printf("x=%d\n",x); }
程序执行后的输出结果是 B
A)x=4
B) x=8
C) x=6
D) x=12
int fun1(duoble a){ return a*=a;} int fun2(dpuble x,double y) { double a=0,b=0; a=fun1(x); b=fun1(y); return (int)(a+b); } main() { double w; w=fun2(1.1,2.0); // …… }
程序执行后变量w中的值是 C
A)5.21
B) 5
C) 5.0
D) 0.0
main() { int i,t[][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<3;i++) printf("%d",t[2-i][i]); }
程序的执行后的输出结果是 B
A)7 5 3
B)3 5 7
C)3 6 9
D)7 5 1
fun(char p[][10]) { int n=0,i; for(i=0;i<7;i++) if(p[i][0]=='T') n++; return n; } main() { char str[][10]={"Mon", "Tue", "Wed", "Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str)); }
程序执行后的输出结果是 B
A) 1
B) 2
C) 3
D) 0
main() { int i,s=0,t[]={1,2,3,4,5,6,7,8,9}; for(i=0;i<9;i+=2) s+=*(t+i); printf("%d\n",s); }
程序执行后的输出结果是 C
A)45
B)20
C)25
D)36
void fun1(char *p) { char *q; q=p; while(*q!='\0') { (*q)++; q++; } } main() { char a[]={"Program"},*p; p=&a[3]; fun1(p); printf("%s\n",a); }
程序执行后的输出结果是 A
A)Prohsbn
B) Prphsbn
C) Progsbn
D) Program
void swap(char *x,char *y) { char t; t=*x; *x=*y; *y=t; } main() { char *s1="abc",*s2="123"; swap(s1,s2); printf("%s,%s\n",s1,s2); }
程序执行后的输出结果是 C
A)123,abc
B) abc,123
C)1bc,a23
D) 321,cba
int fun(int n) { if(n==1) return 1; else return (n+fun(n-1)); } main() { int x; scanf("%d",&x); x=fun(x); printf("%d\n",x); }
程序执行时,给变量x输入10,程序的输出结果是 A
A)55
B) 54
C) 65
D) 45
int fun(int x[],int n) { static int sum=0,i; for(i=0;i<n;i++) sum+=x[i]; return sum; } main() { int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4); printf("%d\n",s); }
程序执行后的输出结果是 C
A)45
B)50
C)60
D)55
main() { union { char ch[2]; int d; }s; s.d=0x4321; printf("%x,%x\n",s.ch[0],s.ch[1]); }
在16位编译系统上,程序执行后的输出结果是 A
A)21,43
B)43,21
C)43,00
D)21,00
main() { char *p[]={"3697","2584"}; int i,j; long num=0; for(i=0;i<2;i++) { j=0; while(p[i][j]!='\0') { if((p[i][j]-‘0')%2) num=10*num+p[i][j]-‘0'; j+=2; } } printf("%d\n"num); }
程序执行后的输出结果是 C
A)35
B)37
C)39
D)3975
#include<stdio.h> main() { FILE *fp; char *s1="Fortran",*s2="Basic"; if((fp=fopen("test.txt","wb"))==NULL) { printf("Can't open test.txt file\n"); exit(1); } fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/ fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); }
A) Basican
B) BasicFortran
C) Basic
D) FortranBasic
A)C语言源程序经编译后生成后缀为.obj的目标程序
B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
A)算法正确的程序最终一定会结束
B)算法正确的程序可以有零个输出
C)算法正确的程序可以有零个输入
D)算法正确的程序对于相同的输入一定有相同的结果
A)C程序必须由一个或一个以上的函数组成
B)函数调用可以作为一个独立的语句存在
C)若函数有返回值,必须通过return语句返回
D)函数形参的值也可以传回对应的实参
char str[20]="Program",*p; p=str;
则以下叙述中正确的是 A
A)*p与str[0]中的值相等
B)str与p的类型完全相同
C)str数组长度和p所指向的字符串长度相等
D)数组str中存放的内容和指针变量p中存放的内容相同
A)C程序中的#include和#define行均不是C语句
B)除逗号运算符外,赋值运算符的优先级最低
C)C程序中,j++;是赋值语句
D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
A)预处理命令行必须位于C源程序的起始位置
B)在C语言中,预处理命令行都以"#"开头
C)每个C程序必须在开头包括预处理命令行:#include
D) C语言的预处理不能实现宏定义和条件编译的功能
A)可以通过typedef增加新的类型
B)可以用typedef将已存在的类型用一个新的名字来代表
C)用typedef定义新的类型名后,原有类型名仍有效
D)用typedef可以为各种类型起别名,但不能为变量起别名
请将每一个空的正确答案写在答题卡[1]至[20]序号的横线上,答在试卷上不得分
1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为_______[45]________。 //9+8+7+6+5+4+3+2+1
2)在面向对象方法中,_____[类]______描述的是具有相似属性与操作的一组对象。
3)在关系模型中,把数据看成是二维表,每一个二维表称为一个___[关系]_____。
4)程序测试分为静态分析和动态测试,其中__[静态测试]______是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。
5)数据独立性分为逻辑独立性与物理独立性,当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为_[逻辑独立性]______。
6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句__[printf("a=%d,b=%d",a,b";]____。
7)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:a+b>c,a+c>b,b+c>a。 请填空。
main() { float a,b,c; scanf("%f%f%f",&a,&b,&c); if(__[(a+b>c)&&(a+c>b)&&(b+c>a)]__) printf("YES\n"); /*a,b,c能构成三角形*/ else printf("NO\n"); /*a,b,c不能构成三角形*/ }
8)以下程序的输出结果是__[30]_____
main() { int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf("%d\n",s); }
9)当运行以下程序时,输入abcd,程序的输出结果是:_[a*b*c*d*]____。
insert(char str[]) { int i; i=strlen(str); while(i>0) { str[2*i]=str[i]; str[2*i-1]='*';i--; } printf("%s\n",str); } main() { char str[40]; scanf("%s",str ); insert(str); }
10)以下程序的运行结果是:__[11]____
fun(int t[],int n) { int i,m; if(n==1) return t[0]; else if(n>=2) { m=fun(t,n-1); return m;} } main() { int a[]={11,4,6,3,8,2,3,5,9,2}; printf("%d\n",fun(a,10)); }
11)现有两个C程序文件T18.c和myfun.c同时在TC系统目录(文件夹)下,其中T18.c文件如下:
#include<stdio.h> #include"myfun.c" main() { fun(); printf("\n"); } myfun.c文件如下: void fun() { char s[80],c; int n=0; while((c=getchar())!='\n') s[n++]=c; n--; while(n>=0) printf("%c",s[n--]); }
当编译连接通过后,运行程序T18时,输入Thank!则输出的结果是:___[、!knahT] 。
12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为Hello!, c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char *fun(char *str,char c) { int n=0; char *p=str; if(p!=NULL) while(p[n]!=c&&p[n]!='\0') n++; if(p[n]=='\0') return NULL; return (_[p+n]_); }
13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
main() { int i,j; for(i=0;__[i<10]__;i++) { j=i*10+6; if(_[j%3]____) continue; printf("%d ",j); } }
14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空
int isprime(int a) { int i; for(i=2;i<=a/2;i++) if(a%i==0) __[return 0]___; __[return 1]___; }
15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
A B C D E F G H I J K L M N O
请填空完成该程序。
main() { int i,j,n; char ch='A'; scanf("%d",&n); if(n<11) { for(i=1;i<=n;i++) { for(j=1;j<=n-i+1;j++) { printf("%2c",ch); ___[ch++]____; } 【printf("\n")】 } } else printf("n is too large!\n"); printf("\n"); }
16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。
#include<stdio.h> typedef struct node /*链表结点结构*/ { char sub[3]; Struct node *next; }Node; Node fun(char s) /*建立链表*/ { //…… } void disp(Node *h) { Node *p; p=h->next; While(【p!=NULL】) { printf("%s\n",p->sub); p=【p->next】; } } main() { Node *hd; hd=fun(); disp(hd); printf("\n"); }
本页共763段,22503个字符,29695 Byte(字节)