全国计算机等级考试二级C语言模拟试题11
一、选择题(每题2分,共计70分) |
| 1.根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成 A)动态结构和静态结构 B)紧凑结构和非紧凑结构 C)线性结构和非线性结构 D)内部结构和外部结构 |
| A B C D |
| 2.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为 A)12 B)13 C)14 D)15 |
| A B C D |
| 3.在下列几种排序方法中,要求内存量最大的是 A)插入排序 B)选择排序 C)快速排序 D)归并排序 |
| A B C D |
| 4.下列叙述中,不属于结构化程序设计方法的主要原则的是 A)自顶向下 B)由底向上 C)模块化 D)限制使用goto语句 |
| A B C D |
| 5.下列不属于软件调试技术的是 A)强行排错法 B)集成测试法 C)回溯法 D)原因排除法 |
| A B C D |
| 6.为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 A)PAD图 B)N-S图 C)结构图 D)数据流图 |
| A B C D |
| 7.软件复杂性度量的参数包括 A)效率 B)规模 C)完整性 D)容错性 |
| A B C D |
| 8.下列叙述中,不属于数据库系统的是 A)数据库 B)数据库管理系统 C)数据库管理员 D)数据库应用系统 |
| A B C D |
| 9.数据库系统的核心是 A)数据库 B)数据库管理系统 C)数据模型 D)软件工具 |
| A B C D |
| 10.视图设计一般有3种设计次序,下列不属于视图设计的是 A)自顶向下 B)由外向内 C)由内向外 D)自底向上 |
| A B C D |
| 11.在C语言中,运算符按照运算对象的数目不同可以分为 A)双目运算符号 B)单目运算符号 C)三目运算符号 D)以上3个都正确 |
| A B C D |
| 12.以下选项中属于C语言的数据类型的是 A)字符串类型 B)双精度型 C)集合型 D)复数型 |
| A B C D |
| 13.下列常数中不能做为C语言常量的是 A)0XB6 B)5.5e-9 C)6e7 D)058 |
| A B C D |
| 14.在C语言中,错误的int类型的常量是 A)66 B)0232 C)0X56F D)32768 |
| A B C D |
| 15.已知int k,m;执行语句k=(m=5*6,m*5),m+6;后,k的值是 A)36 B)30 C)150 D)900 |
| A B C D |
| 16.已知int i=8;执行语句i+=++i;后,i的值是 A)18 B)17 C)16 D)15 |
| A B C D |
| 17.已知int a,b,c,d;则为使以下语句的输出结果为1234+123+12+1,正确的输入形式应当为 scanf("M-=---",&a,&b,&c,&d); printf("M+=+-+\n",a,b,c,d); A)1234+123+12+1 B)1234-12-1231 C)1234-123-12-1 D)1234/123/12/1 |
| A B C D |
| 18.要判断char类型变量c是否是数字,合法的c语言表达式是 A)"0"<=c&&c<="9" B)′0′<=c&&c<=′9′ C)0<=c&&c<=9 D)′0′<=c<=′9′ |
| A B C D |
| 19.以下错误的if语句是 A)if(a>b); B)if(a==b)a+=b; C)if(a!=b)scanf("%d",&a)else scanf("%d",&b); D)if(a |
| A B C D |
| 20.下列语句不是死循环的是 A)for(;;a+=i); B)for(;(a=getchar())!=′0′;)printf("%c",a); C)for(i=10;;i--)b+=i; D)while(1){a++;} |
| A B C D |
| 21.以下错误的描述是 A)使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成 B)do-while和for循环均是先执行循环体语句,后判断表达式 C)while循环是先判断表达式,后执行循环体语句 D)for,while和do-while循环中的循环体均可以由空语句构成 |
| A B C D |
| 22.若有定义int x=1,y=10;,则执行以下语句后,x+y的值为 do{ y-=x; x++;} while(y--<0); A)10 B)12 C)1 D)2 |
| A B C D |
| 23.以下错误的转义字符是 A)′\′ B)′\X7F′ C)′\067′ D)′\r′ |
| A B C D |
| 24.如下程序段的输出结果为 #include "stdio.h" fun(int a) { int x=5; x+=a++; printf("%d",x); } main() { int a=3,x=1; fun(a); x+=a++; printf("%d\n",x); } A)82 B)83 C)84 D)85 |
| A B C D |
| 25.如下程序段的输出结果为 #include "stdio.h" int x=1; main() { int md=4; fun(md); printf("%d,%d\n",md,x); } fun(int k) { k+=x;x+=k; { char x=′B′; printf("%d,",x-′A′); } printf("%d,%d,",k,x); } A)1,6,5,4,6 B)1,5,4,6,4 C)1,4,6,5,4 D)1,5,6,4,6 |
| A B C D |
| 26.如下程序段的输出结果为 #include "stdio.h" main() { int a=2,*b,**db; db=&b;b=&a; a++; printf("%d,%d,%d\n",a,*b,**db); } A)1,2,3 B)3,2,1 C)3,3,3 D)2,2,2 |
| A B C D |
| 27.如下程序段的输出结果为 #include "stdio.h" void tt(int *b) { printf("%d\n",++*b); } main() { int td=25; tt(&td); } A)25 B)26 C)27 D)28 |
| A B C D |
| 28.下面程序段的执行结果是 main() { int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; printf("%d,%d\n",a[1][0]+b[0][0],a[0][1]+b[1][0]); } A)3,0 B)4,0 C)3,1 D)4,1 |
| A B C D |
| 29.下面程序段的执行结果是(" "表示空格) #include "stdio.h" main() { char t[7]="abcdef",s[4]="ABC"; strcpy(t,s); printf("%c",t[5]); } A) B)′10′ C)e D)f |
| A B C D |
| 30.下面程序段的执行结果是 #include "stdio.h" main() { char aa[]="beijing"; char *p=aa; while(*p) { printf("%c",*p-32); p++; } } A)BEIJING B)编译不通过 C)beijing D)Beijing |
| A B C D |
| 26.如下程序段的输出结果为 #include "stdio.h" main() { int a=2,*b,**db; db=&b;b=&a; a++; printf("%d,%d,%d\n",a,*b,**db); } A)1,2,3 B)3,2,1 C)3,3,3 D)2,2,2 |
| A B C D |
| 27.如下程序段的输出结果为 #include "stdio.h" void tt(int *b) { printf("%d\n",++*b); } main() { int td=25; tt(&td); } A)25 B)26 C)27 D)28 |
| A B C D |
| 28.下面程序段的执行结果是 main() { int a[3][3]={{1},{2},{3}}; int b[3][3]={1,2,3}; printf("%d,%d\n",a[1][0]+b[0][0],a[0][1]+b[1][0]); } A)3,0 B)4,0 C)3,1 D)4,1 |
| A B C D |
| 29.下面程序段的执行结果是(" "表示空格) #include "stdio.h" main() { char t[7]="abcdef",s[4]="ABC"; strcpy(t,s); printf("%c",t[5]); } A) B)′10′ C)e D)f |
| A B C D |
| 30.下面程序段的执行结果是 #include "stdio.h" main() { char aa[]="beijing"; char *p=aa; while(*p) { printf("%c",*p-32); p++; } } A)BEIJING B)编译不通过 C)beijing D)Beijing |
| A B C D |
二、填空题(每空2分,共计30分) | |
| 1.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的 【1】 。 | |
| 输入答案,中间不含空格: | |
| 2.数据结构包括数据的逻辑结构、数据的 【2】 以及对数据的操作运算。 | |
| 输入答案,中间不含空格: | |
| 3.以把具有相同属性的一些不同对象归类,称为 【3】 。 | |
| 输入答案,中间不含空格: | |
| 4.软件工程包括3个要素,分别为方法、工具和 【4】 。 | |
| 输入答案,中间不含空格: | |
| 5.由关系数据库系统支持的完整性约束是指 【5】 和参照完整性。 | |
| 输入答案,中间不含空格: | |
| 6.下面函数用来计算a的b次方,其中b为整型变量,且b>=0,请填空。 float power(float a,int b) { float c; for(c=1;b>0;b-=1) c【6】 a; return c; } |
| 输入答案,中间不含空格: |
| 7.若从终端上由第一列开始输入以下数据 I am very glad? 则下面程序段的执行结果是 【7】 。 #include main() { char c; c=getchar(); while(c!=′?′) { putchar(c); c=getchar(); } } |
| 输入答案,中间不含空格: |
| 8.下面的程序是读入300个整数,统计非负数的个数,并计算非负数之和,请填空。 #include "stdio.h" #define N 300 main() { int i,a[N],b,count; b=count=0; for(i=0;i if(a[i]<0) 【9】 ; b+=a[i]; count++; } printf("b=%d,count=%d\n",b,count); |
| 输入答案,中间不含空格: |
| 9.下面程序输出两个字符串中对应位置相同的字符,请填空。 #include "stdio.h" main() { int i=0; char a[]="programming"; char b[]="project"; while(a[i]!=′\0′ && b[i]!=′\0′) if(a[i]==b[i])printf("%c", 【10】 ); else i++; } |
| 输入答案,中间不含空格: |
| 10.输入h值,输出高度为h的等边三角形例如,当h=3时,图形如下,请填空。 * *** ***** #include "stdio.h" void pc(char a,int h) { if(h>0) { printf("%c",a); 【11】 } } main() { int i,h; scanf("%d",&h); for(i=1;i<=h;i++) { 【12】 【13】 printf("\n"); } } |
| 输入答案,中间不含空格: |
| 11.有下面程序,功能是从键盘输入一行字符然后逆向输出该字符串,请填空。 #include "stdio.h" struct node { char data; struct node *link; } *head; main() { char ch; struct node *p; head=NULL; while((ch=getchar())!=′\n′) { p=(struct node *)malloc(sizeof(struct node)); 【14】 p->link=head; head=p; } 【15】 while(p!=NULL) { printf("%c",p->data); p=p->link; } } |
| 输入答案,中间不含空格: |