C语言试题.docx
- 文档编号:29329523
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:22
- 大小:19.23KB
C语言试题.docx
《C语言试题.docx》由会员分享,可在线阅读,更多相关《C语言试题.docx(22页珍藏版)》请在冰豆网上搜索。
C语言试题
试卷编号:
12895
所属语言:
TurboC
试卷方案:
lx
试卷总分:
100分
共有题型:
4种
一、单项选择共26题(共计50分)
第1题(1.0分)题号:
2691
若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。
A:
1
B:
3
C:
2.0
D:
2.5
答案:
C
第2题(1.0分)题号:
2673
()是C语言提供的合法描述数据类型的关键字。
A:
unsigned
B:
integer
C:
Char
D:
fLoat
答案:
A
第3题(1.0分)题号:
2727
以下选项中非法的表达式是______。
A:
0<=x<100
B:
i=j==0
C:
(char)(65+3)
D:
x+1=x+1
答案:
D
第4题(1.0分)题号:
2760
设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
A:
0
B:
1
C:
2
D:
3
答案:
C
第5题(1.0分)题号:
2762
假定w、x、y、z、m均为int型变量,有如下程序段:
w=1;x=2;y=3;z=4
m=(w w: x;m=(m m: y;m=(m m: z; 则该程序段执行后,m的值是______。 A: 4 B: 3 C: 2 D: 1 答案: D 第6题(1.0分)题号: 2723 有以下程序段 intm=0,n=0;charc='a'; scanf("%d%c%d",&m,&c,&n); printf("%d,%c,%d\n",m,c,n); 若从键盘上输入: 10A10↙,则输出结果是______。 A: 10,A,10 B: 10,a,10 C: 10,a,0 D: 10,A,0 答案: A 第7题(1.0分)题号: 2732 有以下程序 main() {intx=102,y=012; printf("%2d,%2d\n",x,y); } 执行后输出结果是______。 A: 10,01 B: 02,12 C: 02,10 D: 102,10 答案: D 第8题(1.0分)题号: 2710 以下程序的输出结果是______。 main() {inta=4,b=5,c=0,d; d=! a&&! b||! c; printf("%d\n",d) } A: 1 B: -1 C: 0 D: 非0的数 答案: A 第9题(1.0分)题号: 2798 C语言中用于结构化程序设计的三种基本结构是______. A: 顺序结构、选择结构、循环结构 B: if、switch、break C: for、while、do-while D: if、for、continue 答案: A 第10题(1.0分)题号: 2802 下面有关for循环的正确描述是(). A: for循环只能用于循环次数已经确定的情况 B: for循环是先执行循环体语句,后判断表达式 C: 在for循环中,不能用break语句跳出循环体 D: for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 答案: D 第11题(1.0分)题号: 176 数组名作为实参数传递给函数时,数组名被处理为()。 A: 该数组的长度 B: 该数组的元素个数 C: 该数组的首地址 D: 该数组中各元素的值 答案: C 第12题(1.0分)题号: 676 以下只有在使用时才为该类型变量分配内存的存储类说明是()。 A: auto和static B: auto和register C: register和static D: extern和register 答案: B 第13题(1.0分)题号: 564 在一个C程序中()。 A: main函数必须出现在所有函数之前 B: main函数可以在任何地方出现 C: main函数必须出现在所有函数之后 D: main函数必须出现在固定位置 答案: B 第14题(1.0分)题号: 642 在C语言中,一维数组的定义方式为: 类型说明符数组名()。 A: [常量表达式] B: [整型表达式] C: [整型常量]或[整型表达式] D: [整型常量] 答案: D 第15题(1.0分)题号: 644 以下对一维整型数组a的正确说明是()。 A: inta(10); B: intn=10,a[n]; C: intn;scanf("%d",&n);inta[n]; D: #defineSIZE10(换行)inta[SIZE]; 答案: D 第16题(1.0分)题号: 649 若有说明: inta[3][4]={0};则下面正确的叙述是()。 A: 只有元素a[0][0]可得到初值0 B: 此说明语句不正确 C: 数组a中各元素都可得到初值,但其值不一定为0 D: 数组a中每个元素均可得到初值0 答案: D 第17题(1.0分)题号: 646 若有说明inta[3][4];则a数组元素的非法引用是()。 A: a[0][2*1] B: a[1][3] C: a[4-2][0] D: a[0][4] 答案: D 第18题(1.0分)题号: 165 下列定义数组的语句中正确的是()。 A: #definesize10charstr1[size],str2[size+2]; B: charstr[]; C: intnum['10']; D: intn=5;inta[n][n+2]; 答案: A 第19题(1.0分)题号: 2916 当定义一个结构体变量时,系统分配给它的内存是______. A: 各成员所需内存量的总和 B: 结构中第一个成员所需内存量 C: 结构中最后一个成员所需内存量 D: 成员中占内存量最大者所需的容量 答案: A 第20题(1.0分)题号: 551 应用缓冲文件系统对文件进行读写操作,打开文件的函数名为()。 A: open B: fopen C: close D: fclose 答案: B 第21题(5.0分)题号: 2822 有以下程序 #include voidmain() { ints=0,a=1,n; scanf("%d",&n); do { s+=1; a=a-2; } while(a! =n); printf("%d\n",s); } 若要使程序的输出值为2,则应该从键盘给n输入的值是(). A: -1 B: -3 C: -5 D: 0 答案: B 第22题(5.0分)题号: 2821 有以下程序 #include voidmain() { inti=0,s=0; do { if(i%2) {i++;continue;} i++; s+=i; }while(i<7); printf("%d\n",s); } 执行后输出的结果是(). A: 16 B: 12 C: 28 D: 21 答案: A 第23题(5.0分)题号: 2820 有以下程序 #include voidmain() { inti; for(i=1;i<3;i++) switch(i) {case1: printf("%d",i); case2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是______. A: 11122 B: 12 C: 12020 D: 120 答案: A 第24题(5.0分)题号: 2838 以下程序中f函数的功能是将n个字符串,按由大到小的顺序进行排序。 #include #include voidf(charp[][10],intn) { chart[20]; inti,j; for(i=0;i for(j=i+1;j if(strcmp(p[i],p[j])<0) { strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[j],t); } } voidmain() { charp[][10]={"abc","aabdfg","abbd","dcdbe","cd"}; f(p,5); printf("%d\n",strlen(p[0])); } A: 6 B: 4 C: 5 D: 3 答案: C 第25题(5.0分)题号: 2755 有如下程序 #include voidmain() {floatx=2.0,y; if(x<0.0)y=0.0; elseif(x<10.0)y=1.0/x; elsey=1.0; printf("%f\n",y); } 该程序输出结果是______。 A: 0.000000 B: 0.250000 C: 0.500000 D: 1.000000 答案: C 第26题(5.0分)题号: 2754 有如下程序 #include voidmain() {intx=1,a=0,b=0; switch(x){ case0: b++; case1: a++; case2: a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是______。 A: a=2,b=1 B: a=1,b=1 C: a=1,b=0 D: a=2,b=2 答案: A 二、程序填空共1题(共计10分) 第1题(10.0分)题号: 3 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能: 已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值,并将该值存放在数组w中。 -------------------------------------------------------*/ floats[30],w[6]; fun1(floats[]) { intk,i; for(k=2,i=0;i<30;i++) { /***********SPACE***********/ 【? 】; k+=2; } } fun2(floats[],floatw[]) { floatsum=0.0; intk,i; for(k=0,i=0;i<30;i++) { sum+=s[i]; /***********SPACE***********/ 【? 】; { w[k]=sum/5; /***********SPACE***********/ 【? 】; k++; } } } main() { inti; fun1(s); /***********SPACE***********/ 【? 】; for(i=0;i<30;i++) { if(i%5==0)printf("\n"); printf("%8.2f",s[i]); } printf("\n"); for(i=0;i<6;i++) printf("%8.2f",w[i]); } 答案: 1).s[i]=k或s[i]=(i+1)*2 2).if((i+1)%5==0)或if((i+1)/5*5==i+1) 3).sum=0或sum=0.0 4).fun2(s,w) 三、程序改错共2题(共计20分) 第1题(10.0分)题号: 13 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 求1到10的阶乘的和。 ------------------------------------------------------*/ main() { inti; floatt,s=0; floatfac(intn); /**********FOUND**********/ for(i=1;i<10;i++) /**********FOUND**********/ s=fac(i); printf("%f\n",s); } floatfac(intn) { /**********FOUND**********/ inty=1; inti; for(i=1;i<=n;i++) y=y*i; /**********FOUND**********/ return; } 答案: 1).for(i=1;i<=10;i++)或for(i=1;10>=i;i++)或for(i=1;i<11;i++)或for(i=1;11>i;i++) 2).s=s+fac(i);或s+=fac(i);或s=fac(i)+s; 3).floaty=1.0;或floaty=1; 4).returny;或return(y);或return(y); 第2题(10.0分)题号: 414 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: 一球从100米高度自由落下,每次落地后反跳回原高度的 一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? ------------------------------------------------------*/ #include"stdio.h" main() { /**********FOUND**********/ floatsn=100.0;hn=sn/2; intn; /**********FOUND**********/ for(n=2;n<10;n++) { sn=sn+2*hn; /**********FOUND**********/ hn=hn%2; } printf("thetotalofroadis%f\n",sn); printf("thetenthis%fmeter\n",hn); } 答案: 1).floatsn=100.0,hn=sn/2; 2).for(n=2;n<=10;n++)或for(n=2;n<11;n++) 3).hn=hn/2; 四、程序设计共2题(共计20分) 第1题(10.0分)题号: 390 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数求表达式的和(n的值由主函数输入)。 1-1/2+1/3-1/4+......+1/m 例如: 当n=20时,表达式的值为0.668771。 ------------------------------------------------*/ #include"stdio.h" floatsum(intn) { /**********Program**********/ /**********End**********/ } main() { intn; scanf("%d",&n); printf("sum=%f\n",sum(n)); yzj(); getch(); } yzj() { FILE*IN,*OUT; intm,n; inti[10]; floato; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<5;n++) fscanf(IN,"%d",&i[n]); for(n=0;n<5;n++) { o=sum(i[n]); fprintf(OUT,"%f\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- floats=0; inti,k=1; for(i=1;i<=n;i++) {s=s+k*1.0/i; k=-k; } return(s); ---------------------- 第2题(10.0分)题号: 370 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 编写函数判断一个整数m的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。 调用该函数找出 100~200之间满足条件的所有数。 ------------------------------------------------*/ #include"stdio.h" intsub(intm) { /**********Program**********/ /**********End**********/ } main() { inti; for(i=100;i<=200;i++) if(sub(i)==1) printf("%4d",i); yzj(); getch(); } yzj() { FILE*IN,*OUT; intn; inti[10]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(n=0;n<10;n++) { fscanf(IN,"%d",&i[n]); } for(n=0;n<10;n++) { o=sub(i[n]); fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案: ---------------------- intk,s=0; do {s=s+m%10; m=m/10; }while(m! =0); if(s%7==0)k=1; elsek=0; return(k); ----------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 试题 语言