《计算机二级C语言历年真题讲解》由会员分享,可在线阅读,更多相关《计算机二级C语言历年真题讲解(70页珍藏版)》请在金锄头文库上搜索。
1、全国计算机等级考试二级C语言历年真题讲解(2008年版)芜湖市万达培训学校主讲: 陈浩 网址: E-mail:QQ: 729061784一、选择题 (11)算法中,对需要执行的每一步操作,必须给出清楚、严格的规定,这属于算法的 A)正当性 B)可行性 C)确定性 D)有穷性 (12)下列叙述中错误的是 A)计算机不能直接执行用C语言编写的源程序 B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件 C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件 D)后缀为.obj和.exe的二进制文件都可以直接运行 (13)按照C语言规定的用户标识符命名规则,不
2、能出现在标识符中的是 A)大写字母 B)连接符 C)数字字符 D)下划线 (14)以下叙述中错误的是 A)C语言是一种结构化程序设计语言 B)结构化程序有顺序、分支、循环三种基本结构组成 C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡模块化的设计方法 (15)对于一个正常运行的C程序,以下叙述中正确的是 A)程序的执行总是从main函数开始,在main函数结束 B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束 D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束2007年4月C
3、DBCA(16)设变量均已正确定义,若要通过scanf(“%d%c%d%c”,语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:代表空格字符) A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车20Y回车 20Y回车 (17)若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是 A)sqrt(abs(nx+ex) B) sqrt(fabs(pow(n,x)+pow(x,e) C)sqrt(fabs(pow(n,x)+exp(x) D) sqrt(fabs(pow(x,n)+ex
4、p(x) (18)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是 A)k+ B)k+=1 C)+k D)k+1 (19)有以下程序,其中%u表示按无符号整数输出 main() unsigned int x=0xFFFF; /* x的初值为十六进制数 */printf(“%un”,x); 程序运行后的输出结果是 A)-1 B)65535 C)32767 D)0xFFFF 20.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是 A)if(x+); B)if(xy C)if(xy) x- - D)if(y0 *p= printf(“Inpu
5、t n:”); scanf(“%d”, printf(“output n:”); printf(“%dn”,p); 该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误, 以下语句正确的是 A)int n,*p=NULL; B)*p= C)scanf(“%d”,A(31)以下程序中函数f的功能是:当flag为1时,进行有由小到大排序;当flag为0时,进行由大到小排序。 void f(int b,int n,int flag) int i,j,t; for(i=0;ibj:biak)t=aj;aj=ak;ak=t;/*按列排序*/for(i=0;i main() char p20=a,
6、b,c,d,q=”abc”, r=”abcde”; strcpy(p+strlen(q),r); strcat(p,q); printf(“%d%dn”,sizeof(p),strlen(p); 程序运行后的输出结果是 A)20 9 B)9 9 C)20 11 D)11 11 (38) 有以下程序 #include main() char p20=a,b,c,d,q=”abc”, r=”abcde” strcat(p,r); Strcpy(p+strlen(q),q); Printf(“%d n”,sizeof(p); 程序运行后的输出结果是 A)9 B)6 C)11 D)7CB(39) 有以
7、下程序 #include main() void f(char p10, int n ) /* 字符串从小到大排序 */ char t10; int i,j;for(i=0;i0) strcpy(t,p); strcpy(p,pj); strcpy(p,t); main() char p510=“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”; f(p,5);printf(“%dn”,strlen(p0); 程序运行后的输出结果是 A) 2 B) 4 C) 6 D) 3 C(40) 有以下程序 void f(int n, int *r) int r1=0; if(n%3=0
8、) r1=n/3; else if(n%5=0) r1=n/5; else f(-n, *r=r1; main() int m=7,r; f(m, printf(“%dn,r”); 程序运行后的输出结果是 A) 2 B) 1 C)3 D) 0A(41)有以下程序main(int argc,char *argv)int n=0,i; for(i=1;in-1;i+) for(j=i+1;jn;j+) if(p-ap-aj) t=p-a; p-a=p-aj; p-aj=t; main() int i; struct S s=10,2,3,1,6,8,7,5,4,10,9; f( for(i=0;i
9、 main() FILE *fp; int k,n,a6=1,2,3,4,5,6; fp=fopen(“d2.dat”,”w”); fprintf(fp,”%d%dn”,a0,a1,a2); fprintf(fp, “%d%d%d n”,a3,a4,a5); fclose(fp); fp=fopen(“d2.dat”,”r”); fscanf(fp, “%d%d”, printf(“%d%dn”,k,n); fclose(fp); 程序运行后的输出结果是 A)1 2 B)1 4 C)123 4 D) 123 456D(50)有以下程序 #include main () FILE *fp; in
10、t i,a6=1,2,3,4,5,6k; fp=fopen(“d3.dat”,”w+b”); fwrite(a,sizeof(int),6,fp); fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i,则其中while循环体将执行_ 次。 include main() char ch; While(ch=getchar()=0) printf(“#”); (8) 以下程序的运行结果是 _ 。 int k=0; void
11、 fun(int m) m+=k; k+=m; printf(“m=%dn k=%d ”,m,k+);main() int i=4; fun(i+); printf(“i=%d k=%dn”,i,k); a=14 0m=4 k=4 i=5 k=5 (9) 以下程序的运行结果是 _ 。main() int a=2,b=7,c=5;switch(a0) case 1:switch(b main() printf(“%dn”,strlen(“IBMn0121”); (11)已定义char ch”$”;int i=1,j;执行j=!ch printf(“%d dn”,sizeof(a),srelen(
12、a); (13)设有定义语句:int a3=0,1,2;,则数组元素a12的值为_ (14)以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中, 然后输出。请填空。 main() int x10,a9,I; for (i=0;i main() char *s1,*s2,m; s1=s2=(char*)malloc(sizeof(char); *s1=15; *s2=20; m=*s1+*s2; printf(“%dn”,m); 1035(18)设有说明 struct DATEint year;int month; int day; 请写出一条定义语句,该语句定义d为上述结构体变
13、量,并同时为其成员 year、month、day 依次赋初值2006、10、1: _(19) 设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向 文本文件readme.txt的最后续写内容。 fw=fopen(“readme.txt”, _ ) struct DATA d=2006,10,1;“a“2007年9月一、选择题 (11)C语言源程序名的后缀是 A).exe B).C C).obj D).cp (12)可在C程序中用作用户标识符的一组标识符是 A) and B) Date C) Hi D) case_2007 y-m-d Dr.Tom Big1 (13)以下选项中,合法的一组C语言数值常量是 A) 028 B) 12. C) .177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e5 (14)以下叙述中正确的是 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以命名