C语言真题2.docx
- 文档编号:29801103
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:21
- 大小:21.24KB
C语言真题2.docx
《C语言真题2.docx》由会员分享,可在线阅读,更多相关《C语言真题2.docx(21页珍藏版)》请在冰豆网上搜索。
C语言真题2
━━━━━━━━━━━━━━
一、判断 共10题 (共计10分)
━━━━━━━━━━━━━━
第1题(1分) 题号:
4
在C语言中,下面的定义和语句是合法的:
file*fp;fp=fopen("a.txt","r");
答案:
N
第2题(1分) 题号:
15
整数-32100可以赋值给int型和longint型变量。
答案:
Y
第3题(1分) 题号:
5
若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[i][2-i];则sum=21.
答案:
Y
第4题(1分) 题号:
34
7&3+12的值是15。
答案:
N
第5题(1分) 题号:
16
若i=3,则printf("%d",-i++);输出的值为-4。
答案:
N
第6题(1分) 题号:
32
若有说明intc;则while(c=getchar());是正确的C语句。
答案:
Y
第7题(1分) 题号:
30
若有#defineS(a,b)a*b则语句area=S(3,2);area的值为6。
答案:
Y
第8题(1分) 题号:
13
char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
答案:
N
第9题(1分) 题号:
38
如果有一个字符串,其中第十个字符为'\n',则此字符串的
有效字符为9个。
答案:
N
第10题(1分) 题号:
11
通过return语句,函数可以带回一个或一个以上的返回值。
答案:
N
━━━━━━━━━━━━━━━━
二、单项选择 共40题 (共计40分)
━━━━━━━━━━━━━━━━
第1题(1分) 题号:
89
以下标识符中,不能作为合法的C用户定义标识符的是()。
(A).a3_b3
(B).void
(C)._123
(D).IF
答案:
B
第2题(1分) 题号:
117
设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为()。
(A).12
(B).144
(C).0
(D).132
答案:
C
第3题(1分) 题号:
581
sizeof(float)是()。
(A).一个双精度型表达式
(B).一个整型表达式
(C).一种函数调用
(D).一个不合法的表达式
答案:
B
第4题(1分) 题号:
120
假设所有变量均为整型,表达式:
a=2,b=5,a>b?
a++:
b++,a+b的值是()。
(A).7
(B).8
(C).9
(D).2
答案:
B
第5题(1分) 题号:
200
若有定义:
char *p1,*p2,*p3,*p4,ch;
则不能正确赋值的程序语句为()。
(A).p1=&ch;scanf("%c",p1);
(B).p2=(char*)malloc
(1);scanf("%c",p2);
(C).*p3=getchar();
(D).p4=&ch;*p4=getchar();
答案:
C
第6题(1分) 题号:
160
C语言的if语句嵌套时,if与else的配对关系是()。
(A).每个else总是与它上面的最近的if配对
(B).每个else总是与最外层的if配对
(C).每个else与if的配对是任意的
(D).每个else总是与它上面的if配对
答案:
A
第7题(1分) 题号:
565
以下叙述中正确的是()。
(A).C语言的源程序不必通过编译就可以直接运行
(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C).C源程序经编译形成的二进制代码可以直接运行
(D).C语言中的函数不可以单独进行编译
答案:
B
第8题(1分) 题号:
541
若有inti=3,*p;p=&i;下列语句中输出结果为3的是()。
(A).printf("%d",&p);
(B).printf("%d",*i);
(C).printf("%d",*p);
(D).printf("%d",p);
答案:
C
第9题(1分) 题号:
708
下面判断正确的是()。
(A).char*a="china";等价于char*a;*a="china";
(B).charstr[10]={"china"};等价于charstr[10];str[]={"china"};
(C).char*s="china";等价于char*s;s="china";
(D).charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
答案:
C
第10题(1分) 题号:
214
C语言中的文件的存储方式有()。
(A).只能顺序存取
(B).只能随机存取(或直接存取)
(C).可以顺序存取,也可随机存取
(D).只能从文件的开头进行存取
答案:
C
第11题(1分) 题号:
664
以下正确的函数定义形式是()。
(A).doublefun(intx,inty)
(B).doublefun(intx;inty)
(C).doublefun(intx,inty);
(D).doublefun(intx,y);
答案:
A
第12题(1分) 题号:
611
以下for循环的执行次数是for(x=0,y=0;(y=123)&&(x<4);x++);()。
(A).是无限循环
(B).循环次数不定
(C).4次
(D).3次
答案:
C
第13题(1分) 题号:
583
已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是..
(A).字符A
(B).字符a
(C).字符e
(D).非法的常量
答案:
A
第14题(1分) 题号:
663
以下不正确的说法是:
C语言规定()。
(A).实参可以是常量,变量或表达式
(B).形参可以是常量,变量或表达式
(C).实参可以为任何类型
(D).形参应与其对应的实参类型一致
答案:
B
第15题(1分) 题号:
141
为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
(A).auto
(B).register
(C).static
(D).extern
答案:
B
第16题(1分) 题号:
519
inta[10];
给数组a的所有元素分别赋值为1、2、3、……的语句是()。
(A).for(i=1;i<11;i++)a[i]=i;
(B).for(i=1;i<11;i++)a[i-1]=i;
(C).for(i=1;i<11;i++)a[i+1]=i;
(D).for(i=1;i<11;i++)a[0]=1;
答案:
B
第17题(1分) 题号:
676
以下只有在使用时才为该类型变量分配内存的存储类说明是()。
(A).auto和static
(B).auto和register
(C).register和static
(D).extern和register
答案:
B
第18题(1分) 题号:
587
语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
(说明:
'\b'是退格符)()。
(A).a\bre\'hi\'y\\\bou
(B).a\bre\'hi\'y\bou
(C).re'hi'you
(D).abre'hi'y\bou
答案:
C
第19题(1分) 题号:
651
以下定义语句中,错误的是()。
(A).inta[]={1,2};
(B).chara[3];
(C).chars[10]="test";
(D).intn=5,a[n];
答案:
D
第20题(1分) 题号:
174
C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。
(A).void
(B).double
(C).int
(D).char
答案:
C
第21题(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
第22题(1分) 题号:
625
已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是()。
(A).0
(B).语法错
(C).1
(D)."假"
答案:
C
第23题(1分) 题号:
637
若有说明:
inta[3][4];则数组a中各元素()。
(A).可在程序的运行阶段得到初值0
(B).可在程序的编译阶段得到初值0
(C).不能得到确定的初值
(D).可在程序的编译或运行阶段得到初值0
答案:
C
第24题(1分) 题号:
498
下列运算符中是C语言关系运算符的是()。
(A).~
(B).!
(C).&
(D).!
=
答案:
D
第25题(1分) 题号:
642
在C语言中,一维数组的定义方式为:
类型说明符数组名()。
(A).[常量表达式]
(B).[整型表达式]
(C).[整型常量]或[整型表达式]
(D).[整型常量]
答案:
C
第26题(1分) 题号:
686
在位运算中,操作数每右移一位,其结果相当于()。
(A).操作数乘以2
(B).操作数除以2
(C).操作数除以4
(D).操作数乘以4
答案:
B
第27题(1分) 题号:
91
以下数值中,不正确的八进制数或十六进制数是()。
(A).0x16
(B).16
(C).-16
(D).0xaaaa
答案:
C
第28题(1分) 题号:
662
C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。
(A).void
(B).int
(C).float
(D).double
答案:
B
第29题(1分) 题号:
516
staticcharstr[10]="China";数组元素个数为()。
(A).5
(B).6
(C).9
(D).10
答案:
D
第30题(1分) 题号:
580
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()。
(A).int
(B).float
(C).double
(D).不确定
答案:
C
第31题(1分) 题号:
586
以下选项中合法的实型常数是()。
(A).5E2.0
(B).E-3
(C)..2E0
(D).1.3E
答案:
C
第32题(1分) 题号:
571
以下叙述正确的是()。
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:
C
第33题(1分) 题号:
610
以下选项中,与k=n++完全等价的表达式是()。
(A).k=n,n=n+1
(B).n=n+1,k=n
(C).k=++n
(D).k+=n+1
答案:
A
第34题(1分) 题号:
127
下列程序的输出结果是()。
main()
{
printf("%d\n",null);
}
(A).0
(B).变量无定义
(C).-1
(D).1
答案:
B
第35题(1分) 题号:
177
以下描述中,正确的是()。
(A).预处理是指完成宏替换和文件包含中指定的文件的调用
(B).预处理指令只能位于C源文件的开始
(C).C源程序中凡是行首以#标识的控制行都是预处理指令
(D).预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:
C
第36题(1分) 题号:
503
以下语句中,不能实现回车换行的是()。
(A).printf("\n");
(B).putchar("\n");
(C).fprintf(stdout,"\n");
(D).fwrite("\n",1,1,stdout);
答案:
B
第37题(1分) 题号:
730
若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。
(A).文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
(B).文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
(C).文件打开时,原有文件内容被删除,只可作写操作
(D).以上各种说法皆不正确
答案:
A
第38题(1分) 题号:
166
下列定义数组的语句中不正确的是()。
(A).inta[2][3]={1,2,3,4,5,6};
(B).inta[2][3]={{1},{4,5}};
(C).inta[][3]={{1},{4}};
(D).inta[][]={{1,2,3},{4,5,6}};
答案:
D
第39题(1分) 题号:
162
设j和k都是int类型,则for循环语句
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);()。
(A).最多执行10次
(B).最多执行9次
(C).是无限循环
(D).循环体一次也不执行
答案:
A
第40题(1分) 题号:
551
应用缓冲文件系统对文件进行读写操作,打开文件的函数名为()。
(A).open
(B).fopen
(C).close
(D).fclose
答案:
B
━━━━━━━━━━━━━━━━
三、程序填空 共2题 (共计20分)
━━━━━━━━━━━━━━━━
第1题(10分) 题号:
421
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
输入学生成绩并显示。
-------------------------------------------------------*/
#include
structstudent
{
charnumber[6];
charname[6];
int score[3];
}stu[2];
voidoutput(structstudentstu[2]);
voidmain()
{
inti,j;
/***********SPACE***********/
for(i=0;i<2;【?
】)
{
printf("请输入学生%d的成绩:
\n",i+1);
printf("学号:
");
/***********SPACE***********/
scanf("%s",【?
】.number);
printf("姓名:
");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("成绩%d. ",j+1);
/***********SPACE***********/
scanf("%d",【?
】.score[j]);
}
printf("\n");
}
output(stu);
}
voidoutput(structstudentstu[2])
{
inti,j;
printf("学号 姓名 成绩1 成绩2 成绩3\n");
for(i=0;i<2;i++)
{
/***********SPACE***********/
【?
】("%-6s%-6s",stu[i].number,stu[i].name);
for(j=0;j<3;j++)
printf("%-8d",stu[i].score[j]);
printf("\n");
}
}
答案:
1).i++或++i或i=i+1
2).&stu[i]
3).&stu[i]
4).printf
第2题(10分) 题号:
427
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
百鸡问题:
100元买100只鸡,公鸡一只5元钱,母鸡一只3
元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?
-------------------------------------------------------*/
#include
main()
{
intcocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
/***********SPACE***********/
【?
】=0;
/***********SPACE***********/
while(hens<=【?
】)
{
chicks=100.0-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)
printf("%d,%d,%d\n",cocks,hens,chicks);
/***********SPACE***********/
【?
】;
}
/***********SPACE***********/
【?
】;
}
}
答案:
1).hens
2).33
3).hens++或++hens或hens=hens+1或hens+=1或hens=1+hens
4).cocks++或++cocks或cocks=cocks+1或cocks=★cocks★+★1或cocks=1+cocks或...
━━━━━━━━━━━━━━━━
四、程序改错 共1题 (共计10分)
━━━━━━━━━━━━━━━━
第1题(10分) 题号:
363
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
给定程序MODI1.C中函数fun的功能是:
计算正整数num的各位上的数字之积。
例如:
若输入:
252,则输出应该是:
20。
若输入:
202,则输出应该是:
0。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
#include
#include
longfun(longnum)
{
/**********FOUND**********/
longk=1
do
{
k*=num%10;
/**********FOUND**********/
num\=10;
/**********FOUND**********/
}while(!
num);
return(k);
}
main()
{
longn;
printf("\Pleaseenteranumber:
");scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}
答案:
1).longk=1;
2).num/=10;或num=num/10;
3).}while(num);或}while(num!
=0);
━━━━━━━━━━━━━━━━
五、程序设计 共2题 (共计20分)
━━━━━━━━━━━━━━━━
第1题(10分) 题号:
404
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写函数fun,求任一整数m的n次方。
注意:
部分源程序给出如下。
请勿改动主函数
main和其它函数中的任何内容,仅在函
数fun的花括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
main()
{voidyzj();
intm,n;
long s;
longfun(int,int);
printf("输入m和n的值:
");
scanf("%d,%d",&m,&n);
s=fun(m,n);
printf("s=%ld\n",s);
yzj();
}
longfun(intm,intn)
{
/**********Program**********/
/********** End *******
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言