试卷编号:11201所属语言:试卷方案:试卷总分:共有题型:C 语言C 语言期末考试100 分4种一、单项选择共30 题(共计60 分)第1题设有定义分):int k=0;, 以下选项的四个表达式中与其他三个表达式的值不相同的是( A ).A:k++B:k+=1C:++kD:k+1分)第2题已知int i=5, 执行语句i+=++i 后, i 的值是( C).A:10B:11C:12D:A、B、C都不对第3题(分)以下程序的功能是: 给r 输入数据后, 计算半径为r 的圆面积s. 程序在编译时出错.#include <>void main( )/* Beginning */{ int r; float s;scanf("%d",&r);s=p*r*r;printf("s=%f\n",s);出错的原因是(D ).A: 注释语句书写位置错误B: 存放圆半径的变量r 不应该定义为整型B:-3C :输岀语句中格式描述符非法D: 计算圆面积的赋值语句中使用了非法变量A:1B:2C:-1D:-2第 6题 (分) 有以下程序 : #include <> void main( ){ int s=0, a=1, n; scanf("%d", &n); do{s+=1; a=a — 2;}while (a!=n );printf ("%d\n", s );}若要使程序的输岀值为 2, 则应该从键盘输入给 n 的值是 ( B ).A:-1第 4题 (分)"ABC " 〃的长度是(B ). A:11B:7 C:5 D:3 第 5题 (分) 已知 intj,i=1;, 执行语句j= - i++;后,j 的值是(C ).第 10 题 (分)C:-5D:0第7题 (分) 执行以下程序后 , 输出的结果是 ( D ).#include <> void main( ){ int y=10;do{y --;}while( - - y);printf("%d\n",y }A:-1B:1C:8D:0#include <> void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j}A:3B:2C:1D:0第9题 (分) 有以下程序段 : int k=0;while (k=1)k++;while 循环执行的次数是A:无限次B: 有语法错误 , 不能执行 C:1 次也不执行D: 执行 1 次第8题 (分) 以下循环体的执行次数是 ( C ).);(A ).-)printf("%d\n",i);#include <> void main( ){ int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是( A ). A:m=123n=456p=789B:m=123 n=456 p=789C:m=123,n=456,p=789D:123 456 789第11 题 (分)设变量已正确定义, 以下能正确计算f=n! 的程序段是(D)A:f=0; for(i=1;i<=n;i++) f*=i;B:f=1; for(i=1;i<n;i++) f*=i;C:f=1; for(i=n;i>1;i++) f*=i;D:f=1;for(i=n;i>=2;i -)f*=i;第12 题 (分)在下列程序中, 没有构成死循环的程序段是( B ).A: int i=100;while(1){i=i%100+1;if(i>100) break;}B:int k=1000; do {++k;} while(k>=10000);第 15 题 (分)D:int s=36; while(s); --s;第 13 题 (分) 有如下程序 : #include <> void main( ) { int n=9;while(n>6){ n--;printf("%d",n);}}该程序段的输出结果是 ( B ).A:987B:876C:8765D:9876第 14 题 (分) 以下程序的输出结果是(D ). #include <> void main( ) { int x=10,y=10,i;for(i=0;x>8;y=++i)A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1printf("%d %d ",x }-,y);#include<> void main( ){ int n[5]={0,0,0},i,k=2;for(i=0;i<k;i++){ printf("%d\n",n[k]);}}该程序的输出结果是( D ).A:不确定的值B:2C:1D:0第16 题 (分) 下列程序执行后的输出结果是( A ).#include<> void main( ){ char arr[2][4];strcpy(arr,"you"); strcpy(arr[1],"me");arr[0][3]='&';printf("%s \n",arr);}A:you&meB:youC:meD:err第17 题 (分) 以下程序的输出结果是( C ). #include<> void main( ){ int i, x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++) printf("%d,",x[i][2-i]);}A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第 18 题 (分) 以下数组定义中不正确的是 ( D ).A:int a[2][3];B:int b[ ][3]={0,1,2,3};C:int c[100][100]={0};D:int d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};第 19 题 (分) 以下能正确定义数组并正确赋初值的语句是第 20 题 (分) 有以下程序 : int a=4;int f(int n){int t=0; static int a=5; if(n%2) { int a=6; t+=a++; }else { int a=7; t+=a++; } return t+a++;}main( ){int s=a,i=0;for( ; i<2; i++) s+=f(i);A:in t N=5,b[N][N]; B:in t a[1][2]={{1},{3}}; C:int c[2][ ]={{1,2},{3,4}}; D:int d[3][2]={{1,2},{3,4}};(D ).C:3 5 3 5printf ("d\n",s );}程序运行后的输出结果是 (B )A:24B:28C:32D:36第 21 题 (分) 以下正确的函数定义形式为 (A) A:doublefun(int x, int y) B:double fun(int x; y) C:double fun(intx; int y) D:double fun(int x, y)第 22 题 (分)C 语言规定,函数返回值的类型是由(DA:return 语句中的表达式类型所决定的B :调用该函数时的主调函数类型所决定的C: 调用该函数时系统临时决定的D: 在定义该函数时所指定的函数类型所决定的输出结果是 () (注: 5353)void swap1(int c0[ ], int c1[ ]){ int t ;t=c0[0]; c0[0]=c1[0]; c1[0]=t;}void swap2(int *c0, int *c1){ int t;t=*c0; *c0=*c1; *c1=t;}main( ){ int a[2]={3,5}, b[2]={3,5};swap1(a, a+1); swap2(&b[0], &b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);}A:3 5 5 3B:5 3 3 5D:5 3 5 3第 23 题 (分)有以下程序 :第24 题 (分) 以下程序的输出结果是( A ). amovep(int*p, int (*a)[3],int n) { int i, j;for( i=0;i<n;i++)for(j=0;j<n;j++){ *p=a[i][j];p++; }}main( ){ int *p,a[3][3]={{1,3,5},{2,4,6}};p=(int *)malloc(100); amovep(p,a,3);printf("%d %d \n",p[2],p[5]); free(p);}A)B)C)D)程序错误第25 题 (分) 有以下函数: fun(char *a,char *b){ while((*a!='\0')&&(*b!='\0')&&(*a==*b)){ a++; b++; }return (*a —*b); }该函数的功能是(D ).A:计算a和b所指字符串的长度之差B: 将 b 所指字符串复制到 a 所指字符串中C: 将 b 所指字符串连接到 a 所指字符串后面D: 比较 a 和 b 所指字符串的大小第26 题(分)有以下程序: 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:1B:2C:3D:0第27 题(分)有以下程序: main( ){ char str[][10]={"China","Beijing"},*p=str; printf("%s\n",p+10);} 程序运行后的输出结果是( B ). A:ChinaB:BeijingC:ngD:ing第28 题(分)有以下程序: #define f(x) (x*x) main( ) { int i1, i2;i1=f(8)/f(4) i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是( C ).A:64, 28B:4, 4C:4, 3D:64, 64结果是( A )void change(int k[ ]) { k[0]=k[5]; } main( ) { int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4) { change(&x[n]); n++; } for(n=0;n<5;n++) printf("%d",x[n]);printf("\n");}A:678910B:13579C:12345D:62345第 30 题 (分)在以下程序中,能够通过调用函数 fun(),使main()函数中的指针变量 p 指向一个合法的整型单元的是 (C ).A:main( )int *p;fun(p);…} int fun(int *p) { int s;p=&s; }B:main( ){ int *p;fun(&p); …} int fun(int **p) { int s;*p=&s; } C:#include <> main( ){ int *p;第 29 题 (分) 有以下程序 : A) 678910B) 13579C) 12345D) 62345fun(&p);…}int fun(int **p){ *p=(int*)malloc(2); }D:#include <>main( ){ int *p;fun(p); … }int fun(int *p){ p=(int*)malloc(sizeof(int)); }二、程序填空共 1 题(共计10 分)第1题(分)/* ----------【程序填空】功能:计算平均成绩并统计90 分以上人数。