C语言程序设计A.docx
- 文档编号:13431771
- 上传时间:2023-06-14
- 格式:DOCX
- 页数:17
- 大小:21.67KB
C语言程序设计A.docx
《C语言程序设计A.docx》由会员分享,可在线阅读,更多相关《C语言程序设计A.docx(17页珍藏版)》请在冰点文库上搜索。
C语言程序设计A
高级语言程序设计(C语言)试卷(A卷)
学院班级学号姓名
注意事项:
1、本试卷共12页,满分为100分,考试时间为110分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
题目
一
二
三
四
总分
分数核对
得分
阅卷人
读卡
一、单项选择题:
(每题1分,共40分)
(说明:
请将正确答案按照题干上【】内的序号涂写“标准答题卡”)
1.以下标识符中,合法的变量名是【1】。
A)g_1
B)3d
C)u-d
D)a&b
2.以下叙述正确的是【2】。
A)在C程序中,main()函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在C程序中,注释说明只能位于一条语句的后面
3.若k,g均为int型变量,则以下语句的输出为【3】。
intk,g;
k=017;
g=111;
printf("%d,",k);
printf("%x\n",g);
A)15,6f
B)f,6f
C)f,111
D)15,111
4.表达式sizeof(double)是【4】。
A)一个双精度型表达式
B)一个整型表达式
C)一种函数调用
D)一个不合法的表达式
5.设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为【5】。
A)1
B)2
C)3
D)4
6.设有说明:
charw;intx;floaty;则表达式w*x+y/4.0值的数据类型为【6】。
A)float型
B)int型
C)double型
D)char型
7.设有变量定义语句charch;则能够正确地为变量ch输入数据的是【7】。
A)getchar(ch);
B)putchar(ch);
C)scanf("%c",ch);
D)scanf("%c",&ch);
8.设inti=0,j=2,k=3;则表达式i&&(i+k)&k|j+i的值是【8】。
A)0
B)1
C)2
D)3
9.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是【9】。
A)7
B)8
C)6
D)2
10.为表示x≥y≥z,应使用的C语言表达式为【10】。
A)(x>=y)&&(y>=z)
B)(x>=y)AND(y>=z)
C)(x>=y>=z)
D)(x>=y)&(y>=z)
11.若intx=12,y=10;则表达式x>12?
x++:
++y的值是【11】。
A)10
B)11
C)12
D)13
12.当c的值为0时,下列选项中能正确将c的值既赋值给变量a又赋值给变量b的是
【12】。
A)c=b=a
B)(a=c)||(b=c)
C)(a=c)&&(b=c)
D)a=c=b
13.语句while(y)等价于【13】。
A)while(y==0)
B)while(y!
=0)
C)while(y==1)
D)while(y!
=1)
14.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【14】。
charch1;ch1='B'+'5'-'3';printf("%d,%c",ch1,ch1);
A)D,D
B)68,D
C)D,68
D)68,68
15.执行下列程序段后,输出结果是【15】。
chars[]="ab\n\012\\\"";
printf("%d",strlen(s));
A)12
B)8
C)6
D)9
16.执行下列程序段后,a的值是【16】。
inta=5;
switch(a)
{default:
a+=10;
case1:
a+=1;break;
case0:
a+=0;break;
case2:
a+=2;break;
case3:
a+=3;break;}
printf("a=%d\n",a);
A)15
B)16
C)21
D)5
17.下列程序段的输出结果是【17】。
x=-1;
do
{x=x+x;
}while(!
x);
A)无限循环
B)循环执行两次
C)循环执行一次
D)有语法错误
18.下列程序段的输出结果是【18】。
intn=0;
while(n++<=2);
printf("%d",n);
A)3
B)4
C)012
D)123
19.下面程序段的运行结果是【19】。
chara[7]="abcdef";
charb[4]="ABC";
strcpy(a,b);
printf("%c",a[5]);
A)︼(代表空格)
B)\0
C)e
D)f
20.下列程序段中的语句printf("*");共执行【20】次。
inti,j;
for(i=0;i<=3;i++)
for(j=i;j<=3;j++)
printf("*");
A)3
B)12
C)6
D)10
21.以下数组定义中,正确的是【21】。
A)inta(10);
B)intn=10,a[n];
C)intn;
scanf("%d",&n);
inta[n];
D)#defineSIZE10
inta[SIZE];
22.下列程序段的输出结果是【22】。
chars[]={"Q12xy"};
inti,n=0;
for(i=0;s[i];i++)
if(s[i]!
='Q')n++;
printf("%d\n",n);
A)0
B)1
C)4
D)5
23.判断字符串s1是否大于字符串s2,应当使用【23】。
A)if(s1>s2)
B)if(strcmp(s1,s2))
C)if(strcmp(s2,s1)>0)
D)if(strcmp(s1,s2)>0)
24.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是【24】。
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=*p1*(*p2);
25.设int型变量占两个字节的存储单元,若有定义intx[10]={1,3,5};则数组x在内存中所占的字节数是【25】。
A)8
B)6
C)10
D)20
26.以下数组的定义中,错误的是【26】。
A)inta[4];
B)inta[4]={1,2,3,4,5};
C)inta[4]={1,2,3,4};
D)inta[4]={1};
27.若调用函数的实参是一个数组名,则向被调函数传送的是【27】。
A)数组的长度
B)数组的首地址
C)数组中每一个元素的地址
D)数组中每个元素的值
28.若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是【28】。
A)a,point,*&a
B)&*a,&a,*point
C)*&point,*point,&a
D)&a,&*point,point
29.下列程序段的输出结果是【29】。
main()
{intaa[3][3]={0,1,2,3,4,5,6,7,8};
int*p=&aa[0][0];
p++;
printf("%d\n",*p);}
A)0
B)1
C)3
D)6
30.若定义函数float*f(intx),则函数的返回值是【30】。
A)一个实数
B)一个指向实型变量的指针
C)一个指向实型函数的指针
D)一个指向整型变量的指针
31.以下程序运行后,输出结果是【31】。
fun(intx,inty,intz)
{z=x+y;returnz;}
main()
{inta=3,b=4,c=5;
c=fun(a,b,c);
printf("%d\n",c);}
A)3
B)5
C)7
D)不确定的值
32.下列程序的输出结果是【32】。
intfun(inta,intb)
{if(a>b)returna;
elsereturnb;}
main()
{intx=3,y=8,z=6;printf("%d",fun(fun(x,y),z*2));}
A)3
B)6
C)8
D)12
33.如果int在内存占2个字节,以下程序的运行结果是【33】。
#include"stdio.h"
main()
{structdate
{intyear,month,day;}today;
printf("%d\n",sizeof(structdate));}
A)6
B)8
C)10
D)3
34.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是【34】。
A)float
B)int
C)long
D)double
35.下列程序的输出结果是【35】。
f(intb[],intn)
{inti,r;
r=1;
for(i=0;i<=n;i++)r=r*b[i];
returnr;}
main()
{intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf("%d\n",x);
}
A)6
B)24
C)120
D)720
36.设有如下定义语句,对结构变量s中成员age的引用方式不正确的是【36】。
structstudent
{charname[10];
intage;
}s;
structstudent*p=&s;
A)s.age
B)*p.age
C)p->age
D)(*p).age
37.已知定义语句如下:
struct{charch;inti;doublex;}a[2][3]={{'a',1,3.45,'b',2,7.98,'c',3,1.93},
{'d',4,4.73,'e',5,6.78,'f',6,8.79}};
对初值中整数2的正确引用方式是【37】。
A)a[1][1].i
B)a[0][1].i
C)a[0][0].i
D)a[0][2].i
38.若有如下定义:
enumcolor{red,yellow,blue=4,green,white}c1,c2;
c1=yellow;c2=white;
printf("%d\n",c1+c2);程序运行结果是【38】。
A)4
B)6
C)9
D)7
39.若执行fopen函数时发生错误,则函数的返回值是【39】。
A)地址值
B)0
C)1
D)EOF
40.函数调用语句:
fseek(fp,-20L,2);的含义是【40】。
A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处后退20个字节
D)将文件位置指针移到离当前位置20个字节处
二、阅读程序题:
(每题3分,共30分)
(说明:
请将正确答案按照题干上【】内的序号填写在下表中)
分数
【1】
【2】
【3】
【4】
【5】
【6】
【7】
【8】
【9】
【10】
1.下列程序段的输出结果是【1】。
intx=7;
x+=x-=x+x;
printf("%d,",x);
2.下列程序段的输出结果是【2】。
inta=1,b=3,c=5,d=4,x;
if(a
if(c elseif(a if(b elsex=30; elsex=60; elsex=60; printf("%d\n",x); 3.下列程序段的输出结果是【3】。 inti=1,s=3; do{s+=i++; if(s%7==0)continue; else++i; }while(s<15); printf("%d%d",i,s); 4.下列程序段的输出结果是【4】。 main() {intc[3][3]={6,9,3,4,8,2,5,4},*p[3]; inti,s=0; for(i=0;i<3;i++) p[i]=c[i]; s+=*p[0]/p[0][1]+*(*(p+2)+2); printf("%d\n",s);} 5.下列程序段的输出结果是【5】。 voidfun(int*n) {while(--(*n)); printf("%d\t",(*n)++);} main() {inta=100; fun(&a); printf("%d",a);} 6.下列程序段的输出结果是【6】。 inta[]={1,2,3,4,5,6,7},*p; p=a; *(p+3)+=2; printf("%d%d%d\n",*p,*p+3,*(p+3)); 7.下列程序的输出结果是【7】。 #include f(intn) {if(n==0)return0; elseif(n==1)return1; elsereturnn+f(n-1);} main() {intn=5; printf("%d",f(n));} 8.下列程序的输出结果是【8】。 #include incx() {intx=0; printf("x=%d\t",++x);} incy() {staticinty=0; printf("y=%d\n",++y);} main() {inti; for(i=1;i<=2;i++) {incx();incy();}} 9.下列程序的输出结果是【9】。 #include structstu {intnum;charname[10];intage;}; main() {structstustudents[3]={{9801,"Zhang",20}, {9802,"Wang",19},{9803,"Zhao",18}},*p=students+2; printf("%d,%s\n",p->age,(*p).name);} 10.下列程序的输出结果是【10】。 #include #defineX5 #defineYX+1 #defineZY*X/2 voidmain() {printf("%d\n",Z);} 三、程序改错题: (每题6分,共12分) (说明: 请将带注释行的错误更正,并将正确答案按照题干上【】中的序号填写在下表中,不可增加或删除语句) 分数 第 1 题 【1】 【2】 【3】 第 2 题 【4】 【5】 【6】 1.下列程序的功能是将字符串s1复制到字符串s2中,不能使用strcpy函数。 请改正程序中的错误。 main() {chars1[20],s2[20],*s3=s2; inti; scanf("%s",*s1);/*本行有错【1】*/ i=0; while(s1[i]! ='\0') s2++=s1[i++];/*本行有错【2】*/ s2='\0';/*本行有错【3】*/ printf("%s",s2);} 2.下列程序的功能是将数组a中的字符串反序存放。 请改正程序中的错误。 #include #include voidinvert(charstr[]) {inti,j,k; for(i=0,j=strlen(str);i {k=str[i];str[i]=str[j];str[j]=k;}} main() {chara[10]={abcdefg};/*本行有错【5】*/ invert(a[10]);/*本行有错【6】*/ printf("%s\n",a);} 四、程序填空题: (每空2分,共18分) (说明: 请将正确答案按照题干上【】中的序号填写在下表中) 分数 第 1 题 【1】 【2】 【3】 第 2 题 【4】 【5】 【6】 第 3 题 【7】 【8】 【9】 1.下面程序的功能是求所有的三位正整数(即100~999之间)中有多少个整数其各个数字之和等于10。 (即一个整数的个位数字,十位数字,百位数字之和等于10)。 请填空完善程序。 #include main() {intn=0,x,y,z,i; for(i=100;i<=999;i++) {x=【1】;/*x: 表示百位上的数字*/ y=【2】;/*y: 表示十位上的数字*/ z=i%10;/*z: 表示个位上的数字*/ if(【3】) n++; } printf("%d\n",n); } 2.下列程序的功能是输入一行字符,以回车结束,分别统计出其中的英文字母、空格、数字和其他字符的个数。 请填空完善程序。 #include main() {inta=0,b=0,c=0,d=0; charx; while((x=getchar())! ='\n') {if(【4】)a++;/*判断是否为字母*/ elseif(【5】)b++;/*判断是否为数字*/ elseif(【6】)c++;/*判断是否为空格*/ elsed++;} printf("%d%d%d%d\n",a,b,c,d);} 3.下列程序的功能是求一个二维整型数组中的最小值,并指明它是数组的第几行第几列的元素(约定: 下标为00的元素是第1行第1列的元素)。 #include main() {inta[3][4]={10,2,3,4,5,99,7,8,9,10,56,23},k,m,min,i,j; min=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(【7】) {【8】; m=i;k=j;} printf("最小值=%d,是第%d行第%d列\n",【9】); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
![提示](https://static.bingdoc.com/images/bang_tan.gif)
文档标签
- C语言程序的设计语言程序设计
- C语言程序设计PAT语言程序设计题目
- C语言程序设计学院语言程序设计
- C语言程序设计语言程序设计教案清华
- C语言程序设计语言程序设计药房管理
- C语言程序设计17语言程序设计在线
- C语言程序设计1253语言程序设计电大
- C语言程序设计语言程序设计考试期末
- C语言程序设计大学语言程序设计试题
- C++语言程序设计C++语言程序设计机械设计
- 语言程序设计
- C语言程序设计0008语言程序设计000821
- C语言程序设计计算机程序语言程序设计
- C语言程序设计电大语言程序设计形成
- c语言程序设计五子棋语言程序设计
- C++语言程序设计《C++语言程序设计》课程设计推箱子C++
- C语言程序设计语言程序设计平时在线
- 语言程序设计讲稿
- 语言源程序
- 语言程序
- Python语言程序设计3语言程序设计
- 程序设计