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 <stdio.h>
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;
下面各输入语句中错误的是( )
Ascanf(“%d”,&(*p).age); Bscanf(“%s”,&std.name);
Cscanf(“%c”,&std[0].sex); Dscanf(“%c”,&(p->sex));
18、设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是
A10101001 B10101000 C11111101 D01010101
19、以下叙述中不正确的是( )
A C语言中的文本文件以ASCII码形式存储数据
B C语言中对二进制文件的访问速度比文本文件低
C C语言中,随机读写方式不适用于文本文件
D C语言中,顺序读写方式不适用于二进制文件
20、以下程序企图把从终端输入的字符输出到名为的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
#include <stdio.h>
main()
{ FILE *fout; char ch;
fout=fopen(‘’,’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
void fun(int *x,int *y)
{ printf("%d%d",*x,*y);*x=3;*y=4;}
main()
{ int x=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
25、、若已定义了如下的共用体类型变量x,则x所占用的内存字节数为( ) 。
union data
{ int i;
char ch;
double f;
}x;
A7 B11 C8 D10
26、若有下面的说明和定义:
struct test
{ int m1;char m2;float m3;
union uu{ char u1[5];int u2[2];}ua;
} myaa;
则sizeof(struct test)的值是 ( ) 。
A12 B16 C 14 D9
27、请选择正确的运行结果填入( ) 中。
include <stdio.h>
int x,y;
num()
{
int a=15,b=10;
int x,y;
y=a-b;
y=a+b;
return;
}
main()
{ int a=7,b=5;
x=a+b;
y=a-b;
num(); printf("%d,%d\n",x,y);
}
A 12,2 B 5,25 C2,12 D不确定
28、设有一结构体类型变量定义如下:
struct date
{ int year;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论