1、C语言期末考试题9试卷编号:11209所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择 共30题 (共计60分)第1题 (2.0分)有以下程序#include void main( ) int a,b,d=25; a=d/10%9; b=a&(1); printf(%d,%dn,a,b);程序运行后的输出结果是( B ).A:A) 6,1B:2,1C:6,0D:2,0第2题 (2.0分)已知int j,i=1;,执行语句j=i+;后,j的值是(C ).A:1B:2C:-1D:-2第3题 (2.0分)已知int i=5,执行语句i+=+i后, i的值是C( )
2、.A:10B:11C:12D:A、B、C都不对第4题 (2.0分)ABC的长度是( B ).A:11B:7C:5D:3第5题 (2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错.#include void main( )/* Beginning */ int r; float s; scanf(%d,&r); s=p*r*r; printf(s=%fn,s);出错的原因是( D ).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第6题 (2.0分)要求计算s= 1+1/2+1
3、/3+1/10,程序为:#include void main( ) int n; float s; s=1.0; for(n=10;n1;n ) s=s+1/n; printf(%6.4fn,s);程序运行后输出结果错误,导致错误结果的程序行是(C ).A:s=1.0;B:for(n=10;n1;n )C:s=s+1/n;D:printf(%6.4fn, s);第7题 (2.0分)执行以下程序后,输出的结果是( D ).#include void main( ) int y=10; do y ; while( y); printf(%dn,y );A:-1B:1C:8D:0第8题 (2.0分)
4、要求计算s= 1+1/2+1/3+1/10,程序为:#include void main( ) int n; float s; s=1.0; for(n=10;n1;n ) s=s+1/n; printf(%6.4fn,s);程序运行后输出结果错误,导致错误结果的程序行是( C).A:s=1.0;B:for(n=10;n1;n )C:s=s+1/n;D:printf(%6.4fn, s);第9题 (2.0分)以下程序的输出结果是( B ).#include void main( ) int k=0,m=0; int i,j; for(i=0;i2;i+) for(j=0;j3;j+) k+;
5、k=j; m=i+j; printf(k=%d, m=%d, k, m);A:k=0,m=3B:k=0,m=5C:k=1,m=3D:k=1,m=5第10题 (2.0分)已有定义:char c;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是( B ).A:isupper(c)B:A=c=ZC:A=c&c=ZD:c=(z32)&(a32)=c第11题 (2.0分)有以下程序:#include void main( ) int s=0, a=1, n; scanf(%d, &n); do s+=1; a=a2; while(a!=n); printf(%
6、dn, s); 若要使程序的输出值为2,则应该从键盘输入给n的值是( B ).A:-1B:-3C:-5D:0第12题 (2.0分)下述循环程序( C ). for(a=0,b=0;a3 & b!=3; a+);A:无限次循环B:循环次数不定C:循环3次D:循环4次第13题 (2.0分)有以下程序:#include void main( ) int i,j,m=55; for(i=1;i=3;i+) for(j=3;j=i;j+) m=m%j; printf(%dn,m);程序的运行结果是( B )A:0B:1C:2D:3第14题 (2.0分)以下程序的输出结果是( D ).#include v
7、oid main( ) int a,b; for(a=1,b=1;a=10) break; if(b%3=1) b+=3;continue;printf(%dn,a);A:101B:6C:5D:4第15题 (2.0分)以下错误的定义语句是( C ).A:int x 3=0,1,1,2,3;B:int x43=1,2,3,1,2,3,1,2,3,1,2,3;C:int x4 =1,2,3,1,2,3,1,2,3,1,2,3;D:int x 3=1,2,3,4;第16题 (2.0分)下面程序的输出结果是( B ).#include void main( ) int i,k,a10,p3; k=5;
8、 for(i=0;i10;i+) ai=i; for(i=0;i3;i+) pi=ai*(i+1); for(i=0;i3;i+) k+=pi *2; printf(%dn,k);A:20B:21C:22D:23第17题 (2.0分)以下程序的输出结果是(B ). #include void main( ) int x32=0,i; for(i=0;i3;i+) scanf(%d,&xi); printf(%3d%3d%3dn,x00,x01,x10);输入:2 4 6A:2 0 0B:2 0 4C:2 4 0D:2 4 6第18题 (2.0分)有以下程序:#include void main
9、( ) int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+) csi+; for(i=1;i5;i+) printf(%d,ci); printf(n);程序的运行结果是( C ).A:1234B:2344C:4332D:1123第19题 (2.0分)有如下程序:#includevoid main( ) int a33,*p,i; p=&a00; for(i=0;i9;i+) pi=i+1; printf(%d n,a12);程序运行后的输出结果是( B ).A:3B:6C:9 D:2第20题 (2.0分)以下程序运行后,输出结果是(
10、C )func(int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m);main( ) int k=4,m=1,p; p=func(k,m);printf(%d,p); p=func(k,m);printf(%dn,p);CA:8,15B:8,16C:8,17D:8,8第21题 (2.0分)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是BA:地址传递B:单向值传递C:由实参传给形参,再由形参传回实参D:传递方式是由用户指定第22题 (2.0分)sub2( ) int aMAX,i,max; max=5; for
11、(i=0;imax;i+) ai=i; sub1( ) for(i=0;iMAX;i+) ai=i*2;sub3(int a ) int i; for(i=0;iMAX;i+) printf(%d,ai); printf(n);DA:0 2 4 6 8 10 12 14 16 180 1 2 3 4B:0 1 2 3 40 2 4 6 8 10 12 14 16 18C:0 1 2 3 4 5 6 7 8 90 1 2 3 4 5D:0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18第23题 (2.0分)有以下程序: int fun(int x ,
12、int n) static int sum=0,i; for(i=0;is2)B:if(strcmp(s1,s2)C:if(strcmp(s2,s1)0)D:if(strcmp(s1,s2)0)第26题 (2.0分)有如下程序:#includevoid main( ) char ch25=6937,8254,*p2;int i,j,s=0;for(i=0;i2;i+) pi=chi;for(i=0;i0;j+=2)s=10*s+pij0;printf(%dn,s);该程序的输出结果是( C ).A:69825B:63825C:6385D:693825第27题 (2.0分)在以下程序中,函数sc
13、mp( )的功能是返回形参指针s1和 s2所指字符串中较小字符串的首地址.#include#includechar *scmp(char *s1,char *s2) if(strcmp(s1,s2)0)return(s1);else return(s2);void main( ) int i;char string20,str320;for(i=0;i3;i+)gets(stri);strcpy(string,scmp(str0,str1);/*库函数strcpy对字符串进行复制*/strcpy(string,scmp(string,str2);printf(%sn,string);运行时依次
14、输入:abcd、abba和abc 3个字符串,则输出结果为( B ).A:abcdB:abbaC:abcD:abca第28题 (2.0分)在文件包含预处理语句的使用形式中,当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B ).A:直接按系统设定的标准方式搜索目录B:先在源程序所在目录搜索,再按系统设定的标准方式搜索C:仅仅搜索源程序所在目录D:仅仅搜索当前目录第29题 (2.0分)有以下程序段:main( ) int a=5,*b,*c; c=&b; b=&a; 程序在执行了c=&b;b=&a;语句后,表达式*c的值是( C ).A:变量a的地址B:变量b中的值C:
15、变量a中的值D:变量b的地址第30题 (2.0分)设有定义语句:int x6=2,4,6,8,5,7,*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是(D ).A:for(i=0;i6;i+) printf(%2d,*(p+);B:for(i=0;i6;i+) printf(%2d,*(p+i);C:for(i=0;i6;i+) printf(%2d,*p+);D:for(i=0;i6;i+) printf(%2d,(*p)+);二、程序填空 共1题 (共计10分)第1题 (10.0分)/*-【程序填空】-功能:计算平均成绩并统计90分以上人数。-*/main() in
16、t n,m;float grade,average; /*SPACE*/ average=n=m=【?】; while(1) /*SPACE*/ 【?】(%f,&grade); if(grade0) break; n+; average+=grade; /*SPACE*/ if(grade90)【?】; m+; if(n) printf(%.2f%dn,average/n,m);三、程序改错 共1题 (共计10分)第1题 (10.0分)/*- 【程序改错】-功能:一个5位数,判断它是不是回文数。即12321是回文数,个 位与万位相同,十位与千位相同。-*/#includestdio.hmain
17、( ) /*FOUND*/ long ge,shi,qian;wan,x; scanf(%ld,&x); /*FOUND*/ wan=x%10000; qian=x%10000/1000; shi=x%100/10; ge=x%10; /*FOUND*/ if (ge=wan|shi=qian) printf(this number is a huiwenn); else printf(this number is not a huiwenn); getch();四、程序设计 共1题 (共计20分)第1题 (20.0分)/*-【程序设计】-功能:从低位开始取出长整型变量s中偶数位上的数,依次
18、构成一个新数放在t中。 例如:当s中的数为:7654321时,t中的数为:642。 -*/#include stdio.h long fun (long s,long t) /*Program*/ /* End */return t; main() long s, t,m; clrscr(); printf(nPlease enter s:); scanf(%ld, &s); m=fun(s,t); printf(The result is: %ldn, m); getch(); yzj();yzj() FILE *IN,*OUT; int n; long i,t,m; IN=fopen(in.dat,r); if(IN=NULL) printf(Read File Error); OUT=fopen(out.dat,w); if(OUT=NULL) printf(Write File Error); for(n=0;n5;n+) fscanf(IN,%ld,&i); m=fun(i,t); fprintf(OUT,%ldn,m); fclose(IN); fclose(OUT);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1