模拟题c语言答案.docx
- 文档编号:28549636
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:14
- 大小:20.16KB
模拟题c语言答案.docx
《模拟题c语言答案.docx》由会员分享,可在线阅读,更多相关《模拟题c语言答案.docx(14页珍藏版)》请在冰豆网上搜索。
模拟题c语言答案
此答案为自己所出,若有不对之处请谅解,并希望能留言
单选题(共60题,每题1分,共60分)
1.下列符号串中,属于C语言合法标识符的个数为(B)。
_1_2_3,a-b-c,float,9cd,a3b4
A:
1
B:
2
C:
3
D:
4
2.下列能为字符变量a赋值的是:
chara=(C)。
A:
'ab'
B:
"a"
C:
'\0'
D:
"\0"
3.在下列字符序列中,合法的标识符是(B)。
A:
P12.a
B:
stud_100
C:
$water.1
D:
88sum
4.下列用于printf函数的控制字符常量中,代表tab的字符常量是(B)。
A:
'\b'
B:
'\t'
C:
'\r'
D:
'\f'
5.下列用于printf函数的控制字符常量中,代表退格的字符常量是(A)。
A:
'\b'
B:
'\t'
C:
'\r'
D:
'\n'
6.如有以下程序:
unsignedinta=6;intb=-20;charc;c=(a+b>6);
则c的值为(C)。
(int转换为unsigned)
A:
6
B:
-14
C:
1
D:
0
7.关于C语言,以下不正确的叙述是(B)。
A:
在C语言程序设计中,逗号运算符的优先级最低
B:
在C语言程序设计中,var和VAR是两个相同的变量
C:
C语言也支持重载
D:
此处的两个语句int a; a=-13.06;在程序编译中将会提示出错
8.若有定义:
int a=2,*p;
float x=1,y=2;
char e=‘w’;
则以下用法不正确的是(B)。
A:
printf("%c",e+a);
B:
p=&x;
C:
a*=y+x;
D:
x=y=e;
9.intx=20;printf("%d\n",~x);
以上程序片段的输出是(B)。
A:
235
B:
-21
C:
-20
D:
-11
10.在C语言中,要求运算数必须是整型的运算符是(D)。
A:
/
B:
++
C:
!
=
D:
%
11.若有定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(结果保留两位小数)(A)。
A:
2.50
B:
2.75
C:
3.50
D:
0.00
12.以下运算符中优先级最低的是(C)。
A:
&&(第三)
B:
&(第一)
C:
||(第四)
D:
|(第二)
13.设有定义语句:
charc1=1,c2=1;,则以下表达式中值为零的是(A)。
A:
c1^c2
B:
c1&c2
C:
~c2
D:
c1|c2
14.以下程序的输出结果是
#include
voidmain()
{
unsignedchara,b;
a=0x0a|3;
b=0x0a&3;
printf("%d%d\n",a,b);
}(B)。
A:
211
B:
112
C:
713
D:
137
15.如果inti=4,则printf("%d",-i--)的输出结果是__,i的值是。
(A)
A:
-4 3
B:
-3 3
C:
-3 4
D:
-4 4
16.若x=2,y=3则x&y的结果是(B)。
A:
1
B:
2
C:
3
D:
5
17.下列程序的输出是(B)。
main()
{intx;
printf("%d\n",(x=3*5,x*2,x+10));}
A:
15
B:
25
C:
30
D:
40
18.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为(C)。
x=(i=4,j=16,k=32)
A:
4
B:
16
C:
32
D:
其他值
19.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是(B)。
A:
7
B:
8
C:
6
D:
2
20.以下程序运行后的输出结果是(A)。
main()
{inta,b;
a=50;b=90;
printf("%d\n",(a,b));
}
A:
90
B:
5090
C:
50
D:
其他
21.以下程序的运行结果是(A)。
voidmain()
{
inta=4;charch=‘a’;
printf("%d\n",(a&2)&&(ch>‘A’));
}
A:
0
B:
1
C:
2
D:
3
22.以下程序的输出是(D)。
#include
main( )
{inti,j=4;
for(i=j;i<=2*j;i++)
switch(i/j)
{ case0:
case1:
printf("*");break;
case2:
printf("#");break;
}
}
A:
*###
B:
**##
C:
***#
D:
****#
23.有如下程序片段:
inti=0;
while(i++<=2);
printf("%d",i--);
则正确的执行结果是(C)。
A:
2
B:
3
C:
4
D:
以上都不是
24.有以下程序段
main()
{inti=1,sum=0,n;
scanf(“%d”,&n);
do
{ i+=2;
sum+=i;
}while(i!
=n);
printf(“%d”,sum);
}
若使程序的输出值为15,则应该从键盘输入的n的值是(D)。
A:
1
B:
3
C:
5
D:
7
25.以下程序的输出是(A)。
#include
voidfun(int*p)
{
inta=10;
p=&a;
++a;
}
voidmain()
{
inta=5;
fun(&a);
printf("%d\n",a);
}
A:
5
B:
6
C:
10
D:
11
26.以下关于函数的说法中正确的是(C)。
A:
定义函数时,形参类型说明可放在函数体内
B:
return语句后边的值不能为表达式
C:
如果函数类型与返回值类型不一致,以函数类型为准
D:
如果形参与实参的类型不一致,以实参为准
27.已知有定义:
int*p();则以下说法正确的是(C)。
A:
指向int型的指针变量
B:
int型的指针数组
C:
一个函数,该函数的返回值是指向int型的指针变量
D:
一个指向函数的指针变量,该函数的返回值为int型
28.若有如下程序:
voids(char*m,intn)
{
*m=*m+3;n=n+3;
printf("%c,%c,",*m,n);
}
voidmain()
{
charp=‘b’,q=‘B’;
s(&q,p);
printf("%c,%c\n",p,q);
}则程序运行后的输出结果是(A)。
A:
E,e,b,E
B:
e,E,b,F
C:
E,e,e,E
D:
e,E,b,E
29.C语言规定函数返回值的类型由(A)。
A:
在定义时所指定的函数类型所决定
B:
调用该函数时的主调函数类型所决定
C:
return语句中的表达式类型所决定
D:
调用该函数时系统临时决定
30.要在c语言中求正弦30度的值,可以调用库函数,可用格式为(D)。
A:
sin(30)
B:
sin(30.0)
C:
sin((double)30)
D:
sin(3.1415/6)
31.在C语言程序设计中,简单变量作为实参时,它和对应形参之间的数据的传递方式是(B)。
A:
地址传递
B:
单向值传递
C:
由实参传给形参,再由形参传给实参
D:
由用户指定传递方式
32.以下程序的输出为(C)。
inta=2;
intf(int*a)
{
return(*a)++;
}
voidmain()
{
ints=0;
{inta=5;
s+=f(&a);
}
s+=f(&a);
printf("%d%d\n",a,s);
}
A:
27
B:
210
C:
37
D:
311
33.以下程序输出结果是(D)。
#include
int*fun()
{
inta[4],k;
for(k=0;k<4;k++)a[k]=k;
return(a);
}
voidmain()
{int*p,j;
p=NULL;
p=fun();
for(j=0;j<4;j++){printf("%d\n",*p);p++;}
}
A:
输出0000
B:
输出0123
C:
输出1111
D:
输出不确定值
34.以下程序的运行结果是(D)。
voidfun(int*n)
{
staticintm=2;
*n*=m-1;m+=2;
}
voidmain()
{
staticintm=1;
inti;
for(i=1;i<4;i++)
fun(&m);
printf("%d\n",m);
}
A:
8
B:
10
C:
11
D:
15
35.下面对typedef的叙述中不正确的是(B)。
A:
用typedef可以定义各种类型名,但不能用来定义变量
B:
typedef和#define都是在预编译时处理的
C:
用typedef只是将已存在的类型用一个新的标识符来代表
D:
使用typedef有利于程序的通用和移植
36.要使用内存分配函数malloc,需要引入的头文件是(BC)。
A:
stdio.h
B:
stdlib.h
C:
malloc.h
D:
memory.h
37.以下宏定义中,不会引起二义性的宏个数为(A)。
1)#definePOWER(x)x*x
2)#definePOWER(x)(x)*(x)
3)#definePOWER(x)(x*x)
4)#definePOWER(x)((x)*(x))(没有二义性)
A:
1个
B:
2个
C:
3个
D:
4个
38.若有二维数组定义语句:
inta[4][5];则下面对元素a[2][3]不正确的引用方式是(B)。
A:
*(&a[2][3])
B:
*(a+5*2+3)可以换为(&a[0][0]+5*2+3)
C:
*(a[2]+3)
D:
*(*(a+2)+3)
39.若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为(B)。
(不知怎么下面是m,应该是n把,不清楚!
!
)
A:
j*m+i
B:
i*m+j
C:
i*m+j-1
D:
j*m+i-1
40.有字符数组a[10]={‘A’,‘\0’}和b[10]={‘B’},则以下正确的输出语句是(D)。
A:
puts(a,b);
B:
printf("%s%s\n",a[],b[]);
C:
putchar(a,b);
D:
puts(a);puts(b);
41.下列程序的输出结果是(D)。
#include
#include
voidmain()
{
charp1[20]="abcd",p2[20]="ABCD";
charstr[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s\n",str);
}
A:
xyabcAB
B:
abcABz
C:
Ababcz
D:
xycdBCD
42.以下程序执行后输出结果是(C)。
voidmain()
{
chara[]="movie",b[10]="movie";
printf("%d%d\n",sizeof(a),sizeof(b));
}
A:
55
B:
66
C:
610
D:
1010
43.以下程序的输出结果是(A)。
voidmain()
{
char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};
printf("%d\n",strlen(p[4]));
}
A:
2
B:
3
C:
4
D:
编译出错
44.已知有以下的说明,
inta[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为(B)。
A:
5
B:
0
C:
4
D:
7
45.以下程序输出结果是(B)。
#include
main()
{
inta[2][2]={1,2,3,4},(*p)[2];
p=a;
p++;
printf("%d\n",**p);
}
A:
2
B:
3
C:
4
D:
以上都不对
46.设charch,str[4],*strp;,则正确的赋值语句是(C)。
A:
ch="CBA";
B:
str="CBA";
C:
strp="CBA";
D:
*strp="CBA";
47.下面程序的运行结果是(C)。
#include
#include
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1 } main() { char*p; p="1234567"; fun(p,strlen(p)); puts(p); } A: 7654321 B: 1714171 C: 1711717 D: 7177171 48.以下程序的输出是(C)。 #include main(){ chara[]="language",*p; p=a; while(*p! =‘u’){printf("%c",*p-‘u’+‘U’);p++;} } A: LANGUAGE B: language C: LANG D: LANGuage 49.structs1 { chara[3]; int num; }t={‘a’,‘b’,‘x’,4},*p; p=&t; 则输出为x的语句是(B)。 A: printf(“%c\n”,p->t.a[2]); B: printf(“%c\n”,(*p).a[2]) C: printf(“%c\n”,p->a[3]); D: printf(“%c\n”,(*p).t.a[2]); 50.以下程序的输出是(D)。 #include main(){ structst {intx; inty; }cnum[2]={1,3,2,7}; printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x); } A: 0 B: 1 C: 3 D: 6 51.以下对age的非法引用是(B)。 struct student {intage; intnum; }stu1,*p; p=&stu1; A: stu1.age B: student.age C: p->age D: (*p).age 52.以下程序的输出是(B)。 #include unionmyun {struct {intx,y,z;}u; intk; }a; voidmain() {a.u.x=4;a.u.y=5;a.u.z=6; a.k=0; printf("%d\n",a.u.y); } A: 4 B: 5 C: 6 D: 0 53.若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式字符串应是(C)。 A: "ab+" B: "rb+" C: "wb+" D: "ab" 54.若执行fopen函数时发生错误,则函数的返回值是(B)。 A: 地址值 B: 0 C: 1 D: EOF 55.要打开文件c: \user\text.txt用于追加数据,正确的语句是(C)。 A: fp=fopen("c: \turboc2\abc.txt","r"); B: fp=fopen("c: \\turboc2\abc.txt","r"); C: fp=fopen("c: \\turboc2\\abc.txt","a+"); D: fp=fopen("c: \turboc2\abc.txt","a+"); 56.在执行fopen函数时,ferror函数的初值是(D)。 A: TRUE B: -1 C: 1 D: 0 57.#include main() { char*s1="Hello",*s2="Beijing"; FILE*pf=fopen("abc.dat","wb+"); fwrite(s2,7,1,pf); fseek(pf,-1,SEEK_CUR); fwrite(s1,5,1,pf); fclose(pf); } 以上程序执行后,文件abc.dat中的内容为(C)。 A: Hellong B: BeijingHello C: BeijinHello D: Hello 58.若fp为文件指针,且文件已正确打开,i为整型数据,以下语句的输出结果是(B)。 fseek(fp,0,SEEK_END); i=ftell(fp); printf("i=%d\n",i); A: fp所指的文件记录长度 B: fp所指的文件长度,以字节为单位 C: fp所指的文件长度,以比特为单位 D: fp所指的文件当前位置,以字节为单位 59.函数调用语句: fseek(fp,-20L,2);的含义是(C)。 A: 将文件位置指针移到距离文件头20个字节处 B: 将文件位置指针从当前位置向后移动20个字节 C: 将文件位置指针从文件末尾处后退20个字节 D: 将文件位置指针移到离当前位置20个字节处 60.若将文件指针的读写位置指针移动到距离文件头200个字节的位置,对应正确的操作是(A)。 A: fseek(fp, 200,SEEK_SET) B: fseek(fp, 200, SEEK_CUR) C: fseek(fp, 200,SEEK_END) D: ftell(200)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 语言 答案