1、二级 C 语言笔试 71 及答案解析(总分:76.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若有如下程序; #define X 3 #define Y X+1 #define Z Y*Y2 main() int n; for(n=1;n=Z;n+) printf(“%d“,n); 则程序运行后的输出结果是 ( )(分数:1.00)A.12345B.1234567C.12345678D.1234562.若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f“, 则以下正确的叙述是 ( )(分数:1.00)A.两处的*p 含义相同,
2、都说明给指针变量 P 赋值 3B.在“double r99,*p7;*p=r;”中,把 r 的地址赋给了 p 所指的存储单元C.语句“*pr;”把变量 r 的值赋给指针变量 pD.语句“*p=r;”把变量 r 的值放回 P 中12.结构化程序设计所规定的三种基本控制结构是 ( )(分数:1.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环D.主程序、子程序、函数13.有如下说明 int a101,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是 ( )(分数:1.00)A.*p+9B.*(p+8)C.*p+9D.p+814.C 语言中 main 函数
3、参数的非法表示形式是 ( )(分数:1.00)A.main(char*argv,int argB.main(int a,char *C.main(int y,char*x)D.main(int argv,char * argc)15.有以下程序 void ss(char * s,char t) while(*s) if(*s=t)*st-a+A; s+; main() char str1100“abcddfefdbd“,cd: ss(str1,C) ; printf(“%s/n“,str1); 程序运行后的输出结果是 ( )(分数:1.00)A.ABCDDEFEGDBDB.abcDDfefDb
4、DC.abcAAfefAbAD.Abcddfefdbd16.有以下的程序 #includestdio.h void fun(char *fname,char *st) FILE *myf; int i; myf=fopen(fname,“w“); for(i=0;istrlen(st);i+)fputc(sti,myf); fclose(myf); main() fun(“test.t“,“new world“);fun(“test.t“,“hello,“); 程序执行后,文件 testt 中的内容是 ( )(分数:1.00)A.hello,B.new worldhello,C.new wor
5、ldD.hello,rld17.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 ( )(分数:1.00)A.冒泡排序B.选择排序C.快速排序D.归并排序18.已知下列函数定义 setw(int *b,int m,int n,int dat) int k; for(k=0;km*n,k+) *bdat;b+; 则调用此函数的正确写法是(假设变量 a 的说明为 int a50) ( )(分数:1.00)A.setw(*a,5,8,1);B.setw(too; DATE max; 则下列语句的执行结果是 ( ) printf(“%d“,stzeof(struct date)+sizeof(
6、max);(分数:1.00)A.25B.30C.18D.827.下列常数中,不合法的 C 常量是 ( )(分数:1.00)A.-0x3b1B.123e+2.3C.D.6e+728.以下叙述中错误的是 ( )(分数:1.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用 fclose 函数关闭已打开的文件C.在利用 fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针29.若有如下程序: sub(p,n) int(*p)3,n; int i; for(i=0;i=n;i+) print
7、f(“%d“,*(*(p+i)+n); main() int s331,2,3,4,5,6,7,8,9; sub(s,2); 则程序运行后的输出结果是 ( )(分数:1.00)A.3 6 9B.2 4 8C.4 5 6D.7 8 930.执行下面的程序段 int x=40; char zB; int B; B=(x*b=c; main() cha,a,b; aA;bB;sub3(putchar(b); aA;b=B;sub2(putchar(a);putchar(b); aA;b=B;sub1(a,b) ;putchar(a);putchar(b); 程序运行后的输出结果是 ( )(分数:1.
8、00)A.BABBABB.ABBBBAC.BABABAD.BAABBA46.有如下程序 main() int x1,a0,b0; switch(x) case 0 : b+; case 1 : a+; case 2 : a+;b+; printf(“a=%d,b=%d/n“,a,B) ; 程序运行后的输出结果是 ( )(分数:1.00)A.a2,b1B.a1,b=1C.a=1,b=0D.a=2,b=247.若有如下程序段: main() int n0; while(printf(“*“) n+; if(n3)break; 则下列描述正确的是 ( )(分数:1.00)A.其中循环控制表达式与 0
9、 等价B.其中循环控制表达式与0等价C.其中循环控制表达式是不合法的D.以上说法都不对48.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 ( )(分数:1.00)A.等于原来关系中的元组个数B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数49.能正确表示代数式 (分数:1.00)A.3*xn(2*x-1)B.3*x*n(2*x-1)C.3*pow(x,*(1(2*x-1)D.3*pow(n,(2*x-1)50.以下非法的赋值语句是 ( )(分数:1.00)A.n(i2,+B.j+C.+(i+1)D.xj0二、B填空题/B(总题数:13,分数:26.00
10、)51.假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为U 【1】 /U。(分数:2.00)填空项 1:_52.类是一个支持集成的抽象数据类型,而对象是类的U 【2】 /U。(分数:2.00)填空项 1:_53.对软件是否能达到用户所期望的要求的测试称为U 【3】 /U。(分数:2.00)填空项 1:_54.单元测试又称模块测试,一般采用U 【4】 /U测试。(分数:2.00)填空项 1:_55.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的U 【5】 /U。(分数:2.00)填空项 1:_56.在 C 语言中,
11、可以利用U 【6】 /U,将一个表达式的值转换成指定的类型。(分数:2.00)填空项 1:_57.下面程序的功能是根据公式 e1+11!+12!+13!+14!+计算 e 的近似值,精度要求为 10-5。请填空。main() int n;double e1.0,t1.0;for(n1;U 【7】 /Un+);U 【8】 /Ue+=t;printf(“%f/n“,e); (分数:2.00)填空项 1:_58.以下程序的输出结果是U 【9】 /U。 double sub(double x,double y,double z) y-1.0; zz+x; return z; main() double
12、 a=2.5,b9.0; printf(“function running result is:%6.1f/n“,sub(b-a,a,A) ); (分数:2.00)填空项 1:_59.下面程序的功能是将字符串 s 中所有的字符 c 删除,补足所缺语句。 #includestdioh main() char s80; int i,j; gets(s); for(i=j=0;si!=/0;i+) if(si!c)U 【10】 /U; sj=/0; puts(s); (分数:2.00)填空项 1:_60.下面程序调用 fun 函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给 s
13、1和 s2,将程序补充完整。 main() int*s1,*s2; fun(U 【11】 /U); int fun(U 【12】 /U); *p=(int *)malloc(sizeof(int); *q=(int *)malloc(sizeof(int); (分数:2.00)填空项 1:_61.以下程序的辅出结果是U 【13】 /U。 void fun(int s) int i; for(i=0;i10;i+)printf(“%d“,si); printf(“/n/n“); main() int a34=99,2,3,4,5,6,7,8;fun(a0); (分数:2.00)填空项 1:_62
14、.以下程序的功能是计算 (分数:2.00)填空项 1:_63.用以下程序把从键盘输入的字符存放到一个文件中,用字符#作为结束符,请按题意要求填空完善程序。#includestdioh main() FILE*fp; char ch,fname10; printf(“Input the name of file/n“); gets(fname); if(fpfopen(U 【18】 /U)=NULL) printf(“cant open/n“); U 【19】 /U; while(chgetchar()!=#) fputc(U 【20】 /U); fclose(fp);(分数:2.00)填空项
15、1:_二级 C 语言笔试 71 答案解析(总分:76.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.若有如下程序; #define X 3 #define Y X+1 #define Z Y*Y2 main() int n; for(n=1;n=Z;n+) printf(“%d“,n); 则程序运行后的输出结果是 ( )(分数:1.00)A.12345B.1234567C.12345678D.123456 解析:2.若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f“, 则以下正确的叙述是 ( )(分数:1.00)A.两处的*p
16、 含义相同,都说明给指针变量 P 赋值 3B.在“double r99,*p7;*p=r;”中,把 r 的地址赋给了 p 所指的存储单元C.语句“*pr;”把变量 r 的值赋给指针变量 pD.语句“*p=r;”把变量 r 的值放回 P 中 解析:12.结构化程序设计所规定的三种基本控制结构是 ( )(分数:1.00)A.输入、处理、输出B.树形、网形、环形C.顺序、选择、循环 D.主程序、子程序、函数解析:13.有如下说明 int a101,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是 ( )(分数:1.00)A.*p+9B.*(p+8) C.*p+9D.p+8解
17、析:14.C 语言中 main 函数参数的非法表示形式是 ( )(分数:1.00)A.main(char*argv,int arg B.main(int a,char *C.main(int y,char*x)D.main(int argv,char * argc)解析:15.有以下程序 void ss(char * s,char t) while(*s) if(*s=t)*st-a+A; s+; main() char str1100“abcddfefdbd“,cd: ss(str1,C) ; printf(“%s/n“,str1); 程序运行后的输出结果是 ( )(分数:1.00)A.AB
18、CDDEFEGDBDB.abcDDfefDbD C.abcAAfefAbAD.Abcddfefdbd解析:16.有以下的程序 #includestdio.h void fun(char *fname,char *st) FILE *myf; int i; myf=fopen(fname,“w“); for(i=0;istrlen(st);i+)fputc(sti,myf); fclose(myf); main() fun(“test.t“,“new world“);fun(“test.t“,“hello,“); 程序执行后,文件 testt 中的内容是 ( )(分数:1.00)A.hello,
19、 B.new worldhello,C.new worldD.hello,rld解析:17.在待排序的元素序列基本有序的前提下,效率最高的排序方法是 ( )(分数:1.00)A.冒泡排序 B.选择排序C.快速排序D.归并排序解析:18.已知下列函数定义 setw(int *b,int m,int n,int dat) int k; for(k=0;km*n,k+) *bdat;b+; 则调用此函数的正确写法是(假设变量 a 的说明为 int a50) ( )(分数:1.00)A.setw(*a,5,8,1);B.setw(too; DATE max; 则下列语句的执行结果是 ( ) print
20、f(“%d“,stzeof(struct date)+sizeof(max);(分数:1.00)A.25B.30 C.18D.8解析:27.下列常数中,不合法的 C 常量是 ( )(分数:1.00)A.-0x3b1B.123e+2.3 C.D.6e+7解析:28.以下叙述中错误的是 ( )(分数:1.00)A.二进制文件打开后可以先读文件的末尾,而顺序文件不可以B.在程序结束时,应当用 fclose 函数关闭已打开的文件C.在利用 fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D.不可以用 FILE 定义指向二进制文件的文件指针 解析:29.若有如下程序: sub
21、(p,n) int(*p)3,n; int i; for(i=0;i=n;i+) printf(“%d“,*(*(p+i)+n); main() int s331,2,3,4,5,6,7,8,9; sub(s,2); 则程序运行后的输出结果是 ( )(分数:1.00)A.3 6 9 B.2 4 8C.4 5 6D.7 8 9解析:30.执行下面的程序段 int x=40; char zB; int B; B=(x*b=c; main() cha,a,b; aA;bB;sub3(putchar(b); aA;b=B;sub2(putchar(a);putchar(b); aA;b=B;sub1(
22、a,b) ;putchar(a);putchar(b); 程序运行后的输出结果是 ( )(分数:1.00)A.BABBAB B.ABBBBAC.BABABAD.BAABBA解析:46.有如下程序 main() int x1,a0,b0; switch(x) case 0 : b+; case 1 : a+; case 2 : a+;b+; printf(“a=%d,b=%d/n“,a,B) ; 程序运行后的输出结果是 ( )(分数:1.00)A.a2,b1 B.a1,b=1C.a=1,b=0D.a=2,b=2解析:47.若有如下程序段: main() int n0; while(printf(
23、“*“) n+; if(n3)break; 则下列描述正确的是 ( )(分数:1.00)A.其中循环控制表达式与 0 等价B.其中循环控制表达式与0等价 C.其中循环控制表达式是不合法的D.以上说法都不对解析:48.在关系数据库中,对一个关系做投影操作后,新关系的元组个数将 ( )(分数:1.00)A.等于原来关系中的元组个数 B.大于原来关系中的元组个数C.小于原来关系中的元组个数D.不能确定元组个数解析:49.能正确表示代数式 (分数:1.00)A.3*xn(2*x-1)B.3*x*n(2*x-1)C.3*pow(x,*(1(2*x-1) D.3*pow(n,(2*x-1)解析:50.以下
24、非法的赋值语句是 ( )(分数:1.00)A.n(i2,+B.j+C.+(i+1) D.xj0解析:二、B填空题/B(总题数:13,分数:26.00)51.假设线性表的长度为 n,则在最坏情况下,冒泡排序需要的比较次数为U 【1】 /U。(分数:2.00)填空项 1:_ (正确答案:n(n-1)/2)解析:52.类是一个支持集成的抽象数据类型,而对象是类的U 【2】 /U。(分数:2.00)填空项 1:_ (正确答案:实例)解析:53.对软件是否能达到用户所期望的要求的测试称为U 【3】 /U。(分数:2.00)填空项 1:_ (正确答案:有效性测试)解析:54.单元测试又称模块测试,一般采用
25、U 【4】 /U测试。(分数:2.00)填空项 1:_ (正确答案:白盒法)解析:55.当数据的物理结构(存储结构、存取方式等)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的U 【5】 /U。(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:56.在 C 语言中,可以利用U 【6】 /U,将一个表达式的值转换成指定的类型。(分数:2.00)填空项 1:_ (正确答案:强制类型转换)解析:57.下面程序的功能是根据公式 e1+11!+12!+13!+14!+计算 e 的近似值,精度要求为 10-5。请填空。main() int n;double e1.0,
26、t1.0;for(n1;U 【7】 /Un+);U 【8】 /Ue+=t;printf(“%f/n“,e); (分数:2.00)填空项 1:_ (正确答案:7tle-5;)解析:8t=t/n;58.以下程序的输出结果是U 【9】 /U。 double sub(double x,double y,double z) y-1.0; zz+x; return z; main() double a=2.5,b9.0; printf(“function running result is:%6.1f/n“,sub(b-a,a,A) ); (分数:2.00)填空项 1:_ (正确答案:function r
27、unning result is:9.0)解析:59.下面程序的功能是将字符串 s 中所有的字符 c 删除,补足所缺语句。 #includestdioh main() char s80; int i,j; gets(s); for(i=j=0;si!=/0;i+) if(si!c)U 【10】 /U; sj=/0; puts(s); (分数:2.00)填空项 1:_ (正确答案:sj+si)解析:60.下面程序调用 fun 函数动态分配两个整型存储单元,并通过形参传回这两个整型存储单元的地址给 s1和 s2,将程序补充完整。 main() int*s1,*s2; fun(U 【11】 /U); int fun(U 【12】 /U); *p=(int *)malloc(sizeof(int); *q=(int *)malloc(sizeof(int); (分数:2.00)填空项 1:_ (正确答案:11 U 【19】 /U; while(chgetchar()!=#) fputc(U 【20】 /U); fclose(fp);(分数:2.00)填空项 1:_ (正确答案:18fname,“#“)解析:19exit(0) 20ch,fp
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1