c语言模拟考试及答案
————————————————————————————————作者:————————————————————————————————日期:
模拟试题
模拟试卷一
一、选择题
1.逻辑运算符两侧运算对象的数据____
A.只能是0或1            B.只能是0或非0正数
C.只能是整型或字符型数据      D.可以是任何类型的数据
2.下面程序段的输出结果是____
int a=023;
printf("%d\n",--a);
A.23 B.17 C.18 D.24
3.若有定义:int a[3][4]; 下面不能表示数组a[1][1]的是____。
A. *(a[1]+1)      B. *(&a[1][1])      C.(*(a+1))[1]      D. *(a+5)
4.设有语句:char str1[]="string",str2[8],*str3,*str4="string";则______不是对库函数strcpy的正确调用。
A. strcpy(str1,"HELLO1");      B. strcpy(str2,"HELLO2");
C. strcpy(str3,"HELLO3");      D. strcpy(str4,"HELLO4");
5.设有定义: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*prt)[3]=a,*p=a[0];
则下列能够正确表示数组元素a[1][2]的表达式是______。
A. *((*prt+1)[2])    B. *(*(p+5))    C. (*prt+1)+2    D.*(*(a+1)+2)
6.有以下程序
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序运行后输出结果是____。
A.5    B.6    C.7    D.8
7.有以下程序:
#include<stdio.h>
union pw
{ int i; char ch[2]; } a;
main()
{ a.ch[0]=13; a.ch[1]=0; printf("%d\n",a.i); }
程序的输出结果是____。
A.13    B.14    C.208    D.209
8.已知字符0的ASCII码为十六进制的30,若有以下程序
main()
{ union { unsigned char c; unsigned int i[4]; } z;
z.i[0]=0x38;
z.i[1]=0x36;
printf("%c\n",z.c);}
输出结果为____。
A.6    B.8    C.0    D.3
9.若有定义char a=1,b=2,c=3;,则表达式 a | b & ~c 的值为____。
A.0    B.1    C.2    D.3
10.以下程序的输出结果是____。
main()
{ char x=020;
printf("%o\n",x<<2);
}
A.100    B.80    C.64    D.32
11.下列关于C语言数据文件的叙述中正确的是____。
A.文件由ASCII码字符序列组成,C语言只能读写文本文件
B.文件由二进制数据序列组成,C语言只能读写二进制文件
C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
12.若要打开D盘上test子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是____。
A. fopen("D:\\test\\","r")      B. fopen("D:\\test\\","r+")
C. fopen("D:\\test\\","rb")    D. fopen("D:\\test\\","w")
13.若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是____。
A. EOF    B. 1    C.非零值    D. NULL
14.用fopen函数打开文件时,若文件使用方式参数为“r+”,则该文件____。
A.只能读,不能写    B.可以读、写,但文件必须存在
C.只能写,不能读    D.可以读、写,若文件不存在则创建新文件
15.在打开的文件中,要获得文件位置指针的当前位置,应调用的库函数是____。
A. fseek    B. fread    C.ftell    D.rewind
二、填空题
1.C源程序的基本单位是____。
2.一个C语句中至少应包含一个____。
3.在C语言中,输入操作可以由库函数____完成,输出操作可以由库函数___完成。
4.若x是int型变量,且x=6,则表达式x%2+(x+1)%2的值为____。
5.若a、b、c均是int型变量,则执行表达式c=(a=5)-(b=2)+a后,c的值为____。
6.若有定义:int y=7; float x=2.5,z=4.7;,则表达式x+(int)(y/3*(int)(x+z)/2)%4的值为__。
7.以下程序的功能是:输入三个整数n1、n2、n3,按从大到小的顺序进行输出。请填空。
main(  )
{ int  n1, n2, n3, temp;
scanf("%d%d%d", &n1, &n2, &n3);
if  (______)
{ temp=n2;  n2=n3;  n3=temp;  }
if  (______)
{ temp=n1;  n1=n2;  n2=temp;  }
printf函数是一个标准库函数
printf("%d, %d, %d\n", n1, n2, n3);
}
8.输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母;其它字符不变。请填空。
main(  )
{ char  ch1;
scanf("%c", ch1);
if (_______)
ch1=ch1+32;
else  if (ch1>='a' && ch1<='z')
________;
printf("%c", ch1);
}
9.程序运行后的输出结果是______。
main()
{ int a=1,b=3,c=5;
if (c==a+b)  printf("yes\n");
else printf("no\n");
}
10.以下程序运行后的输出结果是______。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。