C语言真题4.docx
- 文档编号:30655286
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:23
- 大小:21.70KB
C语言真题4.docx
《C语言真题4.docx》由会员分享,可在线阅读,更多相关《C语言真题4.docx(23页珍藏版)》请在冰豆网上搜索。
C语言真题4
━━━━━━━━━━━━━━
一、判断 共10题 (共计10分)
━━━━━━━━━━━━━━
第1题(1分) 题号:
39
#define和printf都不是C语句。
答案:
Y
第2题(1分) 题号:
28
如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:
Y
第3题(1分) 题号:
31
共同体变量所占的内存长度等于最长的成员的长度。
答案:
Y
第4题(1分) 题号:
11
通过return语句,函数可以带回一个或一个以上的返回值。
答案:
N
第5题(1分) 题号:
3
若有宏定义:
#defineS(a,b)t=a;a=b;b=t由于变量t没定义,
所以此宏定义是错误的。
答案:
N
第6题(1分) 题号:
1
参加位运算的数据可以是任何类型的数据。
答案:
N
第7题(1分) 题号:
36
若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:
N
第8题(1分) 题号:
12
结构体类型只有一种。
答案:
N
第9题(1分) 题号:
9
inti=20;
switch(i/10)
{case2:
printf("A");
case1:
printf("B");}
输出结果为A。
答案:
N
第10题(1分) 题号:
25
如果想使一个数组中全部元素的值为0,可以写成
staticinta[10]={0*10};
答案:
Y
━━━━━━━━━━━━━━━━
二、单项选择 共40题 (共计40分)
━━━━━━━━━━━━━━━━
第1题(1分) 题号:
104
以下运算符中,优先级最高的运算符是()。
(A).||
(B).%
(C).!
(D).==
答案:
C
第2题(1分) 题号:
557
打开文件时,方式“w”决定了对文件进行的操作是()。
(A).只写盘
(B).只读盘
(C).可读可写盘
(D).追加写盘
答案:
A
第3题(1分) 题号:
600
若有说明语句:
charc='\72';则变量c()。
(A).包含1个字符
(B).包含2个字符
(C).包含3个字符
(D).说明不合法,c的值不确定
答案:
A
第4题(1分) 题号:
571
以下叙述正确的是()。
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:
C
第5题(1分) 题号:
654
以下不能正确定义二维数组的选项是()。
(A).inta[2][2]={{1},{2}};
(B).inta[][2]={1,2,3,4};
(C).inta[2][2]={{1},2,3};
(D).inta[2][]={{1,2},{3,4}};
答案:
D
第6题(1分) 题号:
679
在C语言中,形参的缺省存储类是()。
(A).auto
(B).register
(C).static
(D).extern
答案:
A
第7题(1分) 题号:
136
下列程序的输出结果为()。
main()
{intm=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
(A).27.000000
(B).27.500000
(C).28.000000
(D).28.500000
答案:
A
第8题(1分) 题号:
563
以下叙述中正确的是()。
(A).构成C程序的基本单位是函数
(B).可以在一个函数中定义另一个函数
(C).main()函数必须放在其它函数之前
(D).所有被调用的函数一定要在调用之前进行定义
答案:
A
第9题(1分) 题号:
575
若有条件表达式(exp)?
a++:
b--
则以下表达式中能完全等价于表达式(exp)的是()。
(A).(exp==0)
(B).(exp!
=0)
(C).(exp==1)
(D).(exp!
=1)
答案:
B
第10题(1分) 题号:
642
在C语言中,一维数组的定义方式为:
类型说明符数组名()。
(A).[常量表达式]
(B).[整型表达式]
(C).[整型常量]或[整型表达式]
(D).[整型常量]
答案:
C
第11题(1分) 题号:
717
fscanf函数的正确调用形式是()。
(A).fscanf(fp,格式字符串,输出表列);
(B).fscanf(格式字符串,输出表列,fp);
(C).fscanf(格式字符串,文件指针,输出表列);
(D).fscanf(文件指针,格式字符串,输入表列);
答案:
D
第12题(1分) 题号:
676
以下只有在使用时才为该类型变量分配内存的存储类说明是()。
(A).auto和static
(B).auto和register
(C).register和static
(D).extern和register
答案:
B
第13题(1分) 题号:
510
inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
(A).3
(B).2
(C).1
(D).0
答案:
C
第14题(1分) 题号:
626
若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下...
(A).A%2==1
(B).!
(A%2==0)
(C).!
(A%2)
(D).A%2
答案:
C
第15题(1分) 题号:
111
C语言中int类型数据占2个字节,则unsigned类型数据占()。
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
答案:
B
第16题(1分) 题号:
528
对于void类型函数,调用时不可作为()。
(A).自定义函数体中的语句
(B).循环体里的语句
(C).if语句的成分语句
(D).表达式的一部分
答案:
D
第17题(1分) 题号:
670
以下正确的说法是()。
(A).定义函数时,形参的类型说明可以放在函数体内
(B).return后边的值不能为表达式
(C).如果函数值的类型与返回值类型不一致,以函数值类型为准
(D).如果形参与实参类型不一致,以实参类型为准
答案:
C
第18题(1分) 题号:
629
为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:
else子句总是与()配对。
(A).缩排位置相同的if
(B).其之前最近的if
(C).其之后最近的if
(D).同一行上的if
答案:
B
第19题(1分) 题号:
550
不仅可将C源程序存在磁盘上,还可将数据按数据类型分别以()的形式存在磁盘上()。
(A).内存
(B).缓冲区
(C).文件
(D).寄存器
答案:
C
第20题(1分) 题号:
134
若a是float型变量,b是unsigned型变量,以下输入语句中合法的是()。
(A).scanf("%6.2f%d",&a,&b);
(B).scanf("%f%n",&a,&b);
(C).scanf("%f%3o",&a,&b);
(D).scanf("%f%f",&a,&b);
答案:
C
第21题(1分) 题号:
194
若有下列定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;
(A).&a[5]
(B).p+2
(C).a++
(D).&a
答案:
B
第22题(1分) 题号:
198
设有以下语句,若0 charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4]; int j; for(j=0;j<4;j++) strp[j]=str[j]; (A).strp (B).str[k] (C).strp[k] (D).*strp 答案: A 第23题(1分) 题号: 186 已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是()。 (A).p=&j,p=p1; (B).p=a; (C).p=&a[j]; (D).p=10; 答案: D 第24题(1分) 题号: 499 以下常量中,能够代表逻辑“真”值的常量是()。 (A).'\0' (B).0 (C).'0' (D).NULL 答案: C 第25题(1分) 题号: 116 下列语句的结果是()。 main() {intj; j=3; printf("%d,",++j); printf("%d",j++); } (A).3,3 (B).3,4 (C).4,3 (D).4,4 答案: D 第26题(1分) 题号: 722 利用fseek函数可以实现的操作是()。 (A).改变文件的位置指针 (B).文件的顺序读写 (C).文件的随机读写 (D).以上答案均正确 答案: D 第27题(1分) 题号: 108 C语言中int类型数据占2个字节,则short类型数据占()。 (A).1个字节 (B).2个字节 (C).4个字节 (D).8个字节 答案: B 第28题(1分) 题号: 604 下面不正确的字符串常量是()。 (A).'abc' (B)."12'12" (C)."0" (D)." " 答案: A 第29题(1分) 题号: 700 设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下 不能正确执行的赋值语句是()。 (A).c=*p1+*p2; (B).p2=c; (C).p1=p2; (D).c=*p1*(*p2); 答案: B 第30题(1分) 题号: 694 以下叙述正确的是()。 (A).可以把define和if定义为用户标识符 (B).可以把define定义为用户标识符,但不能把if定义为用户标识符 (C).可以把if定义为用户标识符,但不能把define定义为用户标识符 (D).define和if都不能定义为用户标识符 答案: B 第31题(1分) 题号: 159 下列程序的输出为()。 main() { int y=10; while(y--); printf("y=%d\n",y); } (A).y=0 (B).while构成无限循环 (C).y=1 (D).y=-1 答案: D 第32题(1分) 题号: 183 以下程序的输出结果为()。 intfunc(intx,inty) { return(x+y); } main() { inta=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } (A).15 (B).13 (C).9 (D).函数调用出错 答案: B 第33题(1分) 题号: 203 以下对枚举类型名的定义中正确的是()。 (A).enuma={sum,mon,tue}; (B).enuma{sum=9,mon=-1,tue}; (C).enuma={"sum","mon","tue"}; (D).enuma{"sum","mon","tue"}; 答案: B 第34题(1分) 题号: 147 执行下列语句后,a和b的值分别为()。 inta,b; a=1+'a'; b=2+7%-4-'A'; (A).-63,-64 (B).98,-60 (C).1,-60 (D).79,78 答案: B 第35题(1分) 题号: 599 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 (A).7 (B).8 (C).6 (D).2 答案: B 第36题(1分) 题号: 710 若有定义: int*p[3];,则以下叙述中正确的是()。 (A).定义了一个基类型为int的指针变量p,该变量具有三个指针 (B).定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 (C).定义了一个名为*p的整型数组,该数组含有三个int类型元素 (D).定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 答案: B 第37题(1分) 题号: 653 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。 (A).chars[10]="abcdefg"; (B).chart[]="abcdefg",*s=t; (C).chars[10];s="abcdefg"; (D).chars[10];strcpy(s,"abcdefg"); 答案: C 第38题(1分) 题号: 537 在定义构造数据类型时,不能()。 (A).说明变量 (B).说明存储类型 (C).初始化 (D).末尾不写分号 答案: D 第39题(1分) 题号: 138 以下程序的输出结果是()。 main() {int i,j,k,a=3,b=2; i=(--a==b++)? --a: ++b; j=a++;k=b; printf("i=%d,j=%d,k=%d\n",i,j,k); } (A).i=2,j=1,k=3 (B).i=1,j=1,k=2 (C).i=4,j=2,k=4 (D).i=1,j=1,k=3 答案: D 第40题(1分) 题号: 155 假定所有变量均已正确定义,下列程序段运行后x的值是()。 k1=1; k2=2; k3=3; x=15; if(! k1) x--; else if(k2) x=4; else x=3; (A).14 (B).4 (C).15 (D).3 答案: B ━━━━━━━━━━━━━━━━ 三、程序填空 共2题 (共计20分) ━━━━━━━━━━━━━━━━ 第1题(10分) 题号: 420 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目: 计算某日是当年的第几天。 #include struct { intyear; intmonth; intday; }data; /*定义一个结构并声明对象为data*/ voidmain() { intdays; printf("请输入日期(年,月,日): "); scanf("%d,%d,%d",&data.year,&data.month,&data.day); switch(data.month) { case1: days=data.day; break; /***********SPACE***********/ case2: days=data.day+【? 】; break; case3: days=data.day+59; break; case4: days=data.day+90; break; /***********SPACE***********/ case5: days=data.day+【? 】; break; case6: days=data.day+151; break; case7: days=data.day+181; break; case8: days=data.day+212; break; case9: days=data.day+243; break; case10: days=data.day+273; break; case11: days=data.day+304; break; case12: days=data.day+334; break; } /***********SPACE***********/ if(data.year%4==0&&data.year%100! =0【? 】data.year%400==0) if(data.month>=3) /***********SPACE***********/ days=【? 】; printf("%d月%d日是%d年的第%d天.\n",data.month,data.day,data.year,days); } 答案: 1).31 2).120 3).|| 4).days+1或1+days或++days 第2题(10分) 题号: 17 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目: 以下程序的功能是删除字符串中的指定字符,字符串和 要删除的字符均由键盘输入。 -------------------------------------------------------*/ #include"stdio.h" main() { charstr[80],ch; inti,k=0; /***********SPACE***********/ gets(【? 】); ch=getchar(); /***********SPACE***********/ for(i=0;【? 】;i++) if(str[i]! =ch) { /***********SPACE***********/ 【? 】; k++; } /***********SPACE***********/ 【? 】; puts(str); } 答案: 1).str或&str[0] 2).str[i]! =′\0′或str[i]! =NULL或str[i]! =0或str[i]或*(str+i)或*(str+i)... 3).str[k]=str[i]或*(str+k)=*(str+i)或str[k]=*(str+i)或*(str+k)=str[i] 4).str[k]=′\0′或*(str+k)=′\0′或str[k]=NULL或str[k]=0或*(str+k)=0或... ━━━━━━━━━━━━━━━━ 四、程序改错 共1题 (共计10分) ━━━━━━━━━━━━━━━━ 第1题(10分) 题号: 25 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能: fun函数的功能是: 给定n个实数,输出平均值,并统计 在平均值以下(含平均值)的实数个数。 例如: n=6时,输入23.5,45.67,12.1,6.4,58.9,98.4所得 平均值为40.828335,在平均值以下的实数个数应为3。 -------------------------------------------------------- 注意: 不可以增加或删除程序行,也不可以更改程序的结构。 ------------------------------------------------------*/ #include intfun(floatx[],intn) { intj,c=0; /**********FOUND**********/ floatj=0; /**********FOUND**********/ for(j=0;j<=n;j++) xa+=x[j]; xa=xa/n; printf("ave=%f\n",xa); /**********FOUND**********/ for(j=0;j<=n;j++) if(x[j]<=xa) c++; /**********FOUND**********/ returnxa; } main() { floatx[]={23.5,45.67,12.1,6.4,58.9,98.4}; printf("%d\n",fun(x,6)); } 答案: 1).floatxa=0;或floatxa=0.0; 2).for(j=0;j 3).for(j=0;j 4).returnc;或return(c);或return(c); ━━━━━━━━━━━━━━━━ 五、程序设计
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言