C语言程序设计试卷(共13页).doc
精选优质文档-倾情为你奉上 说明:请将单项选择题(150空)的正确答案涂写考试答题卡,将填空(5175空)等文字题按【 】中的序号写入下面文字答题卡,否则不得分。二、阅读程序题文字答题卡:(每空2分,共24分)1题【51】1题【52】2题【53】3题【54】4题【55】5题【56】6题【57】7题【58】7题【59】8题【60】9题【61】10题【62】三、完善程序填空题文字答题卡:(每空2分,共26分)1题【63】2题【64】【65】【66】3题【67】【68】【69】4题【70】【71】【72】5题【73】【74】【75】一、单项选择题(每空1分,共50分)请将正确答案按【】中的序号写入答题卡,否则不得分。1C源程序的扩展名为 【】 。A)C B)DLL C)EXE D)DOC2按照标识符的要求, 【】 符号不能组成标识符。A) 数字符号 B)下划线 C) 连接符 D) 大小写字母3设有说明:char c;int a; float x ; double y;则表达式c*a+y-x 值的数据类型是 【】 。A) double B) char C) int D) float4已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是 【】 。A) putchar('A'+1);B) putchar('b'-32); C) putchar(98-32);D) putchar(B);5在C语言中,数值常量0x9f对应十进制值是 【】 。A)160B) 87C) 9f D) 1596整型变量a定义后赋初值的结果是 【】 。 int a=28*6;A) 12B) 16C) 17D) 187将小写字母n赋值给字符变量one_char,正确的操作是 【】 。A)one_char=n;B) one_char=”n”; C)one_char=110;D) one_char=N;8若有以下说明和语句,则输出结果是 【】 。 char s10="a test!"; printf("%d",strlen(s);A) 6 B) 8 C) 7 D) 99下面的程序结果为: 【】 。 main() int a; printf("%dn",(a=3*5,a*4,a+5); 执行完输出函数后,a的值是 【】 。A)65B) 20 C) 15D) 10 10下列运算附中,优先级最低的是 【】 。A)& B) && C) D) |11C语言的下列运算符中,运算对象必须是整型数据的是 【】 。A)% B) / C)&& D)*12设有以下语句:int x=10;x+=3+x%(-3),则x的值是 【】 。A) 14B) 15C) 11 D) 1213下面程序的输出结果是 【】 。main() int a=-1,b=4,k; clrscr(); k=(a+<=0)&&(!(b-<=0); printf("%d,%d,%dn",k,a,b);A)1,1,2B)1,0,3C) 0,1,2D) 0,0,314下面哪个表达式的值为4 【】 。A)11/3B) 110/3C)(float)11/3D)(int)(110/3+05)15下列程序的运行结果是 【】 。 main() int x=0,y=1,z=0;if(x=z=y)x=3;printf(“%d,%dn”,x,z); A) 3,0 B) 0,0 C) 0,1 D) 3,116下面程序的输出结果是 【】 。main()int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf(“%dn”,z);A) 3 B) 1 C) 2 D) 017运行下面程序,若从键盘输入“3” 和 “5”,则程序的输出结果是 【】 。main() int x,y;scanf(“%d,%d”,&x,&y);if(x= =y)printf(“x= =y”);else if(x>y)printf(“x>y”);elseprintf(“x<y”); A) 3<5 B) 5>3 C) x>y D) x<y18若有条件表达式x?a+:b-,则以下表达式中能完全等价于表达式x的是 【】 。A) (x= =0) B) (x!=0) C) (x= = 1) D) (x!=1)19结构化程序设计的三种基本结构是 【】 。A) 顺序结构、选择结构、循环结构B) 顺序结构、转移结构、递归结构C) 嵌套结构、选择结构、递归结D) 嵌套结构、循环结构、顺序结构20下面的程序main() int i;for(i=0;i<10;i+);printf("%dn",i); 的输出结果是 【】 。 A) 0B) C) D) 1021do语句的循环次数为 【】 。int a=10;do a-; while (a!=0)A) 10B) 9C) 11D) 1222下面程序段的运行结果是 【】 。int n=0;while(n+<=2);printf(“%d”,n); A)2 B) 3 C) 4 D) 出错信息23对以下程序段的叙述正确的是 【】 。int k=0;while(k=0) k=k-1;A) while循环之行10次B) 无线循环C) 循环体一次也不执行D) 循环体被执行一次24下面程序的运行结果是 【】 。 main() int i,b,k=0; for(i=1;i<=5;i+) b=i%2;while(b- >=0) k+; printf(“%d,%dn”,k,b); A) 3,-1 B) 8,-1 C) 3,0 D) 8,-225以下不正确的定义语句是 【】 。A) double x5=2.0,4.0,6.0,8.0,10.0;B) int y5=0,1,3,5,7,9;C) char c1='1','2','3','4','5'D) char c2='x10','xa','x8'26以下不能对二维数组a进行正确初始化的语句是 【】 。A) int a23=0;B) int a3=1,2,0;C) int a23=1,2,3,4,5,6;D) int a3=1,2,3,4,5,6;27下面的程序运行时,若从键盘输入 What does<CR> this word<CR> mean?<CR> 则输出 What does this word mean? 请将程序填完整。 #include <stdio.h> main( ) char s110,s210,s310,s410; scanf("%s%sn",s1,s2); 【】 ; scanf("%s",s4); printf("%s %s %s %sn",s1,s2,s3,s4); A) gets(s3); B) scanf("%sn",s3); C) scanf("%s",s3); D) getchar(s3);28设有说明 char *a = "No smoking!" 则以下不能正确输出的语句是 【】 。A) printf("% s", &a ); B) printf("% s", a );C) puts( a ); D) puts ("No smoking!");29以下程序的输出结果是 【】 。#include <string.h> main() char str12='s','t','r','i','n','g',0; printf("%d",strlen(str); A) 12 B) 11 C) 7 D) 630以下程序的输出结果是 【】 。main() int i, x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+) printf("%d,",xi2-i);A) 1,5,9, B) 1,4,7, C) 3,5,7, D) 3,6,9,31若有说明 int x ; 则下面判断不正确的是 【】 。A) x和(&x)0等价 B) x和*&x等价 C) &x和x0等价 D) *&x和(&x)0等价32下面说明不正确的是 【】 。A) char a10="china" B) char a10,*p=a; p="china"C) char *a; a="china" D) char a10,*p; p=a="china"33设己定义 static int a =0,1,2,3,4,5,6,7,8,9,*p= a, i ;其中0i9, 则对a数组元素的引用不正确的是 【】 。A) pp a B) *(ai) C) pi D) *(*(a+i )34若有以下定义和语句: int s45,(*ps)5; ps=s; 则下列叙述中不正确的是 【】 。A) ps+1与ps1等价 B)*( ps+1)与ps1等价 C) ps11 与*(*( ps+1)+1)等价 D) *(ps+1) 与ps11 等价35C语言规定,函数返回值的类型是由 【】 。 A) return语句的表达式类型所决定 B) 调用该函数时的主调函数类型所决定 C) 调用该函数时系统临时决定 D) 在定义该函数时所指定的函数类型所决定36在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是 【】 。A) 地址传递 B) 单向值传递C) 由实参传给形参,再由形参传回实参 D) 传递方式由用户指定37请读程序: #include <stdio.h> fun(char *s) char *p=s; while(*p !='0')p+; return(p-s); main() printf(“%dn”,fun(“abcdef”); 上面输出结果是 【】 。 A)3 B)6 C)8 D)038在一个C源程序文件中,若要定义一个只允许在该源程序文件中所有函数使用的变量,则该变量需要的存储类别是 【】 。A) static B) externC) register D) auto39以下程序的输出结果是 【】 。int f() static int i=0;int s=1;s+=i; i+;return s;main() int i,a=0;for(i=0;i<5;i+) a+=f();printf("%dn",a);A) 20 B) 24 C) 25 D) 1540若定义enum color red, green, blue, purple, yellow, black, orange cl;,执行语句c1=green+blue;后,以下选项中cl的结果正确的是 【】 。A)greenblue B)purple C)yellow D)编译出错41使用typedef定义一个新类型的正确步骤是 【】 。1. 把变量名全部删除换成一个新类型名2. 按定义变量的方法写出定义体3. 用新类型名定义变量4. 在最前面加上关键字typedefA)2,3,1,4B)1,3,2,4C)2,1,4,3D)4,2,3,142为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当是 【】 。 A)“r+” B)“w+” C)“wb+” D)“ab+”43在进行文件操作时,写文件的一般含义是 【】 。A)将计算机内存中的信息存入磁盘 B)将磁盘中的信息存入计算机内存C)将计算机CPU中的信息存入磁盘 D)将磁盘中的信息存入计算机CPU44已知函数的调用形式:fread(buffer,size,count,fp); 其中buffer代表的是 【】 。A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读入的文件C)一个指针,指向要存放读入数据的首地址D)一个存储区,存放要读入的数据项45若调用fputc函数输出字符成功,则其返回值是 【】 。A)输出的字符 B)0 C)1 D)EOF46当读写二进制文件,没到文件末尾时,feof函数的值是 【】 。A)非零值 B)0 C)1 D)TRUE47编译预处理命令不可以放在 【】 。A) 源文件末尾 B) 函数内部 C) 函数外部 D) 源程序文件的开头48下列程序的运行结果是 【】 。 #define N 2#define M N+2#define CUBE(x) (x*x*x)main() int i ; i=CUBE(M) ; printf("%dn",i ); A) 12 B) 53 C) 64 D) 4149下列程序的运行结果是 【】 。 #define M 3#define N M+1#define NN N*N/2main() printf("%dn",5*NN); A) 17 B) 18 C) 30 D) 4050以下程序段的输出结果是 【】 。main() char s="141141abct"printf ("%dn",strlen(s);A) 9 B) 12 C) 13 D) 14二、阅读程序题 (每空2分,共24分)请将正确答案按【】中的序号写入文字答题卡,否则不得分。1执行下面程序段后,x的值是 【51】 ;i的值是 【52】 。int i,x;for (i=1,x=1; i<=50; i+)if (x>=10)break;if (x%2=1)x+=5;continue;x-=3;2以下程序数据顺序输入为:8 6 5 4 1 回车,则的输出结果是 【53】 。main() int i,b5;for(i=0;i<5;i+)scanf("%d",&bi);for(i=4;i>-1;i-)printf("%5d",bi);printf("n");3下列程序的输出结果是 【54】 。#include <stdio.h>main() int a34=1,2,3,4,5,6,7,8,9,10,11,12; printf("%d,%dn",*(*a+2),*a2);4下列程序的输出结果是 【55】 。main() int a5=12,21,13,6,18;int *p,*s;for(p=a,s=a; p-a<5; p+)if (*p>*s ) s=p;printf("%dn",*s);5下列程序的输出结果是 【56】 。main() char *a="I love China!" a=a+7; printf("%s n",a); 6有如下程序,该程序的输出结果是 【57】 。 main() char ch25=“6937”,”8254”,*p2; int i,j,s=0; for(i=0;i<2;i+) pi=chi; for(i=0;i<2;i+) for(j=0;pij>0;j+=2) s=10*s+pij-0; printf(“%dn”,s); 7以下程序则输出结果是f ( int a) int b=0;static int c = 3;b+; c+;return(a+b+c);main() int a = 2, i;printf("%dn",f(a); 【58】 printf("%dn",f(a); 【59】 8下列程序的输出结果是 【60】 。int b=2;int func(int *a) b += *a; return(b);main() int a=2, res=2;res += func(&a);printf("%d n",res);9以下程序的输出结果是 【61】 。 int d=1; func(int p) int d=7; d=p; printf(“%d ”,d); return(d); main() int a=3;printf(“%dn”,func(a+func(d);10以下程序的输出是 【62】 。struct st int x; int *y; *p;int dt4= 10,20,30,40 ;struct st aa4= 50,&dt0,60,&dt1,70,&dt2,80,&dt3;main() p=aa;printf("%dn",+p->x);三、完善程序填空题(每空2分,共26分) 请将正确答案按【】中的序号写入答题卡,否则不得分。1求1100以内能被3整除且含数字5的数#include <stdioh>main()int i,a,b,c;for (i=1;i<100;i+) a=i%10;b=i/10;if ( 【63】 )printf("%dt",i); 2以下程序输入了20个数存放在一个数组中,并且输出其中最大者与最小者、,20个数的和及它们的平均值。请填空。void main() char array20; int max,min,average,sum=0; int i; for(i=0;i<20;i+) printf("请输入第%d个数:",i+1); scanf("%d",&arrayi); max=array0; min=array0; for(i=0;i<=19;i+) if(max<arrayi) 【64】 ; if(min>arrayi) 【65】 ; sum= 【66】 ; average = sum/20; printf("20个数中最大值是%d,",max); printf("最小值是%d,",min); printf("和是%d,",sum); printf("平均值是%d.n",average);3下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。#include <stdio.h>#include <string.h>main() char a="clanguage",t;int i, j, k;k= 【67】 ; for(i=0; i<=k-2; i+=2)for(j=i+2; j<=k; 【68】 )if( 【69】 ) t=ai; ai=aj; aj=t; puts(a);printf("n");4下面程序的功能是:主函数通过调用average函数计算数组中各元素的平均值。请填空。float average (int *pa, int n)int i;float avg=0.0;for (i=0;i<n;i+)avg=avg+【70】 ;return (【71】 );main()int i,a5=2,4,6,8,10;float mean;mean=average (【72】 ,5);printf ("平均值=%fn", mean);5以下程序用来从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差,例如:输入的两个字符串分别为abcdef和abceef,则输出为-1,请填空。 #include<stdio.h> main() char str1100,str2100,c; int i,s; printf("n input string 1:n"); gets(str1); printf("n input string 2:n"); gets(str2); i=0; while(str1i=str2i&&(str1i!= 【73】 ) i+; s= 【74】 ; /* 不要填比较函数 */ printf("%dn", 【75】 ); 1"A" 2"C" 3"A" 4"D" 5"D" 6"B" 7"C" 8"C" 9"B" 10"B"11"A" 12"A" 13"B" 14"D" 15"D" 16"C" 17"D" 18"B" 19"A" 20"D"21"A" 22"C" 23"C" 24"D" 25"B" 26"C" 27"A" 28"A" 29"D" 30"C"31"C" 32"D" 33"D" 34"D" 35"D" 36"B" 37"B" 38"A" 39"D" 40"B"41"C" 42"A" 43"A" 44"C" 45"A" 46"B" 47"A" 48"A" 49"B" 50"A"110621 4 5 6 833,94215Chian!663857788691 4 410511i%3=0 && (a=5 | b=5)2【1】 max=arrayi【2】 min=arrayi【3】 sum+arrayi3【1】 strlen(a)【2】 j+=2【3】 ai>aj4【1】*(pa+i) 或 pai【2】 avg/n【3】a5【1】 '0' 或0 【2】 strli-str2i【3】 s专心-专注-专业