试卷三
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言试题C
一、选择(30*2)
1、下列关于C语言用户标识符的叙述中正确的是()
A 用户标识符中可以出现下划线和中划线(减号)
B 用户标识符中不可以出现中划线,但可以出现下划线
C 用户标识符中可以出现下划线,但不可以放在用户标识符的开头
D 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.在C语言程序中,说法正确的是___。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和函数的调用都不可以嵌套
D. 函数的定义和函数的调用都可以嵌套
3.变量的指针,其含义为指该变量的()。
A. 值
B. 地址
C. 名
D. 一个标志
4、若有定义:char s[20]=”programming”, *ps=s; 则不能代表字符‘o’的表达式是()。
A. ps+2
B. s[2]
C. ps[2]
D. ps+=2, *ps
5.头文件的扩展名可以是()
A. .h和.obj
B. .h和.c
C. .c和.obj
D. 任意
6.若x、y均为int型变量,z为double型变量,则以下不合法的scanf函数调用语句为__________
A scanf(“%d,%x,%le”,&x,&y,&z); B. scanf(“%2d,%d,%lf”,&x,&y,&z); C.scanf(“%x,%8d,%9.2f”,&x,&y,&z); D. scanf(“%o,%x,%lf”,&x,&y,&z);
7、在宏定义# define E 2.71828中,宏名E代替一个()。
A. 单精度数
B. 双精度数
C. 常数
D. 一个字符串
8.合法的数组定义是()。
A. int a[]=“string”;
B. int a[5]={0,1,2,3,4,5};
C. char a=“string”;
D. char a[]={0,1,2,3,4,5};
9.若i,j已定义为int类型,则以下程序段中
for(i=5;i;i--)
for(j=0;j<4;j++) {…}
循环体的总的执行次数,供选择的答案是___________。
A.20
B. 24
C. 25
D. 30
10、scanf ( )函数的地址表列是用()符号加上变量名表示变量的地址。A.% B.& C.# D.!
11、在C语言的if语句中,用作判断的表达式为()。
A. 关系表达式
B. 逻辑表达式
C. 算术表达式
D. 任意表达式
12、设有以下程序段:
char a[ ]=”study”,*p;
p=a;
printf(“%d”,*(p+5));
执行后的结果为:
A、111
B、0
C、104
D、不确定
13.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为。
struct student
{ char name[20];
int age;
char sex;
}stu[5], *p;
p=stu;
A. scanf("%s", stu[0].name);
B. scanf("%d", p->age);
C. scanf("%c", &(p->sex));
D. scanf("%d", &stu[0].age);
14、若有以下定义和语句
#include
int a=3,b=4,*,*q,*w;
p=&a;q=&b;w=q;q=NULL;
则以下选项中错误的语句是()
A*q=0; Bw=p; C*p=a; D*p=*w;
15、有以下程序
int *f(int *x,int *y)
{ if(*x<*y)
return x;
else
return y;
}
main()
{ int a=7,b=8,*p,*q,*r;
p=&a; q=&b;
r=f(p,q);
printf(“%d,%d,%d\n”,*p,*q,*r);
}
执行后输出结果是()
A)7,8,8 B)7,8,7 C8,7,7 D 8,7,8
16、有以下程序
main()
{ char *s[]={“one”,”two”,”three”},*p;
p=s[1];
printf(“%c,%s\n”,*(p+1),s[0]);
}
执行后输出结果是()
An,two Bt,one Cw,one Do,two
17、设有如下定义
struct ss
{ char name[10];
int age;
char sex;
}std[3],*p=std;
下面各输入语句中错误的是()
A scanf(“%d”,&(*p).age); Bscanf(“%s”,&);
C scanf(“%c”,&std[0].sex); Dscanf(“%c”,&(p->sex));
18、设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是
A10101001 B10101000 C11111101 D0*******
19、以下叙述中不正确的是()
A C语言中的文本文件以ASCII码形式存储数据
B C语言中对二进制文件的访问速度比文本文件低
C C语言中,随机读写方式不适用于文本文件
D C语言中,顺序读写方式不适用于二进制文件
20、以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include
main()
{ FILE *fout; char ch;
fout=fopen(…abc.txt‟,‟w‟);
ch=fgetc(stdin);
while(ch!=‟#‟)
{ fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是()
A函数fopen调用形式错误B输入文件没有关闭
C函数fgetc调用形式错误D文件指针stdin没有定义
21、若变量c为char类型,能正确判断出c为小写字母的表达式是()。
A'a'<=c<='z' B(c>='a')||(c<='z')
C('a'<=c)and('z'>=c)D(c>='a')&&(c<='z')
22、以下所列的各函数首部中,正确的是()。
Avoid play(var a:Integer var b:Integer)Bvoid play(int a,b)
Cvoid play(int a,int b)Dsub play(a as integer b as integer)
23、以下程序的输出结果是()。
A0 B29 C31 D无定值
fun(int x int y,int z)
{z=x*x+y*y;}
main()
{ int a=31;
fun(5,2,a);
printf("%d",a);
}
24、下列程序段的输出结果是()
A2 l 4 3 B1 2 1 2 C1 2 3 4 D2 1 1 2