c语言填空
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空
1.函数调用时的实参和形参之间的数据是单向的【1】传递. 值
2.设a、b、c为整型数, 且a=2、b=3、c=4, 则执行完以下语句:a*=16+(b++)-(++c);后,a的值是 【1】. 28
3. C语言中,【1】是程序的基本组成部分. 函数
4. C语言的三种基本结构是【1】结构、选择结构、循环结构. 顺序
5. 执行以下程序段后, s的值是【1】16
int a[]={5,3,7,2,1,5,3,10},s=0,k;
for(k=0;k<8;k+=2)
s+=*(a+k);
6. break语句除了可以用于循环语句的循环体中,还可以用于【1】语句中. switch
7. 执行语句"n=1;if(n=5) n++;"后,变量n值为【1】. 6
8. c语言表达式5>2>7>8的值是【1】. 0
9. C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是【1】. int
10. 函数的定义不可以嵌套,但函数的调用【1】嵌套.
可以
11. 设 x 的值为15,n 的值为2,则表达式 x%=(n+3) 运算后 x 的值是【1】. 0
12. 如果函数不要求带回值,可用【1】来定义函数返回值为空. void
13. 设有程序段
int x= 4,y=4;
t=++x||++y;
执行语句后y的值为【1】. 4
14. 执行下列语句后,*(p+1)的值是【1】. b
char s[3]="ab",*p;
p=s;
15. 若有以下定义和语句:
int a[4]={0,1,2,3},*p;
p=&a[2];
则*--p的值是【1】. 1
16. 设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】. 1.0
17. 若x为int型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式【1】. x==0
18. 逗号表达式(a=3*5,a*4),a+5的值为【1】. 20
19. 在调用函数fopen("a:\\b.dat","r")时,若A盘根目录下不存在文件b.dat,则函数的返回值是【1】. NULL
20. 已知x=2,y=2 则表达式x*=y+8的值为【1】. 20
21. 若声明"char a[15]="Windows-9x";",语句"printf("%s",a+8);"的输出结果为【1】. 9x
22. 设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(a>b)?a:b后,t 的值是【1】. 9
23. 若a=1,b=4,c=3,表达式a&&b+c||b-c的值为【1】. 1
24. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为【1】. 0
25. 调用 fopen 函数打开一文本文件,在"使用方式"这一项中,为输入而打开需填入【1】. r
26. 从函数的形式上看,函数分为无参函数和【1】两种类型. 有参函数
27. C程序中有且仅有一个【1】函数. main
28. 从变量的作用域角度分有全局变量和【1】.局部变量
29. 设有下面的程序段
int x= 0,y=0,t;
t=x&&++y;
执行语句后y的值为【1】. 0
30. 若有定义:char s[ ]="china";则Visual C++系统为数组s开辟【1】个字节的内存单元. 6
31. 写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】. 18
32. 当a=1,b=1,c=1时,表达式a33. 设y为int型变量,请写出描述"y为奇数"的表达式【1】. y%2!=0=========或========= y%2==1
34. 在C语言中的实型变量分为两种类型,它们是float型和【1】型. double
35. 【1】语句,
只能用在循环中,以中断某次循环,继续下一次循环. continue
36. union un1
{ int a;
char b;
float c;
}x;
上述定义的共同体变量x共占用存储空间【1】个字节. 4
37. 已知 i=5,写出语句 a=i++; 执行后整型变量a的值是【1】. 5
38. 计算a、b中最小值的条件表达式为【1】. a39. 一个C源程序中至少应包括一个【1】函数. main
40. C语言中一个函数由函数首部和【1】两部分组成.
函数体
41. 已知 a=10,b=15,c=1,d=2,e=0,则表达式c==b>e的值为【1】. 1
42. 若有以下定义和语句:
int a[5]={1,3,5,7,9},*p;
p=&a[2];
则++(*p)的值是【1】. 6
43.在函数调用中,若实参为数组名,则形参必须为数组名或【1】. 指针变量
44. 已知 i=5;写出语句 i+=012; 执行后整型变量 i 的十进制值是【1】. 15
45. C语言中调用【1】函数来关闭文件. fclose
46. 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 0
47. 若在程序中用到"strlen()"函数时,应在程序开头写上包含命令# include "【1】". string.h
48. 当程序读写数据文件时,需要有声明语句"FILE *fp;",在该声明语句之前必须包含的头文件名为【1】. stdio.h
二、单项选择
1.设变量定义为"int x, *p=&x;",则&(*p)相当于A
A:p B:*p C:x D:*(&x)
2. C语言中要求对变量作强制定义的主要理由是().D
A:便于移植 B:便于写文件
C:便于编辑预处理程序的处理
D:便于确定类型和分配空间
3. 设有以下说明语句
struct ex
{ int x ; float y; char z ;} example;
则下面的叙述中不正确的是( ). B
A:struct结构体类型的关键 B:example是结构体类型名
C:x,y,z都是结构体成员名 D:struct ex是结构体类型
4. C语言中不可以嵌套的是().B
A:函数调用 B:函数定义 C:循环语句 D:选择语句
5.在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().D
A:只能用逻辑表达式 B:只能用关系表达式
C:只能用逻辑表达式或关系表达式 D:可用任意表达式
6. C语句"x*=y+2;"还可以写作( ). C
A:x=x*y+2; B:x=2+y*x;
C:x=x*(y+2); D:x=y+2*x;
7.对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是().B
A:将5个初值依次赋给a[1]至a[5]
B:将5个初值依次赋给a[0]至a[4]
C:将5个初值依次赋给a[6]至a[10]
D:因为数组长度与初值的个数不相同,所以此语句不正确
8.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是().B
A:void B:int C:float D:double
9.设已有声明"int x[]={1,2,3,4,5,6},*p=&x[2];",则值为3的表达式是( ). B
A:*++p B:*(p++) C:++*p D:*p+1
10.判断char型变量cl是否为小写字母的正确表达式是().D
A:'a'<=cl<='z' B:(cl>=a)&&(cl<=z)
C:('a'>=cl)||('z'<=cl) D:(cl>='a')&&(cl<='z')
11.下面说明不正确的是().D
A:char a[10]="ch
ina";
B:char a[10],*p=a;p="china"
C:char *a;a="china";
D:char a[10],*p;p=a="china"
12.设有说明"int x=3,y=4;",则"++x>y--?x:y"的值为( ). D
A:4 B:1 C:2 D:3
13.设有说明:char c; int x; double z;则表达式c*x+z值的数据类型为D
A:float B:int C:char D:double
14.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是().C
A:1 B:2 C:2.0 D:2.5
15.设变量定义为"int a, b;",执行下列语句时,输入_____,则a和b的值都是10. D
scanf("a=%d, b=%d",&a, &b);
A:10 10 B:10, 10
C:a=10 b=10 D:a=10, b=10
16.数组名作为实参数传递给函数时,数组名被处理为().C
A:该数组的长度 B:该数组的元素个数
C:该数组的首地址 D:该数组中各元素的值
17.两个指针变量不可以().A
A:相加 B:比较 C:相减 D:指向同一地址
18.下列( )表达式的值为真,其中a=5;b=8;c=10;d=0 D
A:a*2>8+2 B:a&&d
C:(a*2-c)||d D:a-b
char a[ ]="abc";
char b[ ]={'a','b','c'};
则以下叙述正确的是( ). D
A:a与b数组完全相同 B:a与b数组长度相同
C:a与b中都存放字符串 D:a数组比b数组长度长
20.若有以下定义:char s='\092'; 则该语句().B
A:使s的值包含1个字符 B:定义不合法,s的值不确定
C:使s的值包含4个字符 D:使s的值包含3个字符
21.能正确表示逻辑关系:" a≥10或a≤0 "的C语言表达式是D
A:a>=10 or a<=0 B:a>=0 | a<=10 C:a>=10 && a<=0 D:a>=10 || a<=0
22.下列字符序列中,不可用作C语言标识符的是().B
A:b70 B:#ab C:symbol D:a_1
23.系统的标准输入文件是指().A
A:键盘 B:显示器 C:软盘 D:硬盘
24.若给定条件表达式(M)?(a++):(a--),则其中表达式M().C
A:和(M==0)等价 B :和(M==1)等价
C:和(M!=0)等价 D:和(M!=1)等价
25.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是().B
A:7 B:8 C:6 D:2
26.库函数在使用时,要用()A
A:#include命令 B:#define命令 C:#if D:#else
27.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符().C
A:必须为字母 B:必须为下划线
C:必须为字母或下划线
D:可以是字母,数字和下划线中任一字符
28.已定义两个字符数组a,b,则以下正确的输入格式是A
A:scanf("%s%s", a, b);
B:get(a, b);
C:scanf("%s%s", &a, &b); D:gets("a"),gets("b");
29.以下不能正确进行字符串赋初值的语句是().A
A:char str[5]="good!";
B:char str[]="good!";
C:char *str="good!";
D:char str[5]={'g','o','o','d',0};
30.不正确的字符串赋值或赋初值的方式是( ). C
A:char str[]="string";
B:char str[7]={'s','t','r','i','n','g'};
C:char str[10];str="string";
D:char str[7]={'s','t','r','i','n','g', '\0'};
31.关于建立函数的目的,以下
正确的说法是().B
A:提高程序的执行效率
B:提高程序的可读性
C:减少程序的篇幅
D:减少程序文件所占内存
32.以下标识符中,不能作为合法的C用户定义标识符的是().B
A:a3_b3 B:void C:_123 D:IF
33.若变量均已正确定义并赋值,以下合法的C语言赋值语句是A
A:x=n/2.5; B:x==5; C:x+n=I; D:5=x=4+1;
34.若有声明"int x[10]={0,1,2,3,4,5,6,7,8,9},*p",则值不为4的表达式是( ). C
A:p=x,*(p+4) B:p=x+4,*p++
C:p=x+3,*(p++) D:p=x+3,*++p
35.以下的选择中,正确的赋值语句是().C
A:a=1,b=2 B:j++ C:a=b=5; D:y=int(x)
36.gets函数的功能是()B
A:读取从键盘输入的一串不带空格的字符串
B:读取从键盘输入的一串带空格的字符串
C:读取从键盘输入的一串不带数字的字符串
D:读取从键盘输入的一串只带字母的字符串
37.若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是().C
A:int p=&x; B:int *p=x;
C:int *p=&x; D:*p=*x;
38.执行语句 for(i=1;i++<4;); 后变量 i 的值是().C
A:3 B:4 C:5 D:不定
39.字符串指针变量中存入的是B
A:字符串 B:字符串的首地址
C:第一个字符 D:字符串变量
40.变量s的定义为 char *s = "hello world!" ; ,要使用变量p指向s所指向的同一个字符串,则应选取( ). A
A:char *p=s; B:char *p=&s;
C:char *p ; p=*s; D:char *p;p=&s;
41.在C语言中,函数的数据类型是指()A
A:函数返回值的数据类型
B:函数形参的数据类型
C:调用该函数时的实参的数据类型
D:任意指定的数据类型
42.经过以下语句定义后,表达式z+=x>y?++x:++y的值为().C
int x=1,y=2,z=3;
A:2 B:3 C:6 D:5
43.若用数组名作为函数的实参,传递给形参的是().A
A:数组的首地址 B:数组第一个元素的值
C:数组中全部元素的值 D:数组元素的个数
44.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是().A
A:字符A B:字符a C:字符e D:非法的常量
45.设C语言中,int类型数据占2个字节,则long类型数据占().C
A:1个字节 B:2个字节 C:4个字节 D:8个字节
46.下列运算符中,不属于关系运算符的是().D
A:< B:> C:>= D:!
47.下列字符数组长度为5的是A
A:char a[]={'h', 'a', 'b', 'c', 'd'};
B:char b[]= {'h', 'a', 'b', 'c', 'd', '\0'};
C:char c[10]= {'h', 'a', 'b', 'c', 'd'};
D:char d[6]= {'h', 'a', 'b', 'c', '\0' };
48.设有说明语句 char a='\101'; ,则变量a( ). D
A:包含4个字符 B:包含2个字符
C:包含3个字符 D:包含1个字符
49.当定义一个结构体变量时,系统分配给它的内存是().A
A:各成员所需内存量的总和
B:结构中第一个成员所需内存量
C:结构中最后一个成员所需内存量
D:成员中占内存量最大
者所需的容量
50.能将高级语言编写的源程序转换为目标程序的是().C
A:链接程序 B:解释程序 C:编译程序 D:编辑程序
51.具有相同类型的指针变量p与数组a,不能进行的操作是().D
A:p=a; B:*p=a[0]; C:p=&a[0]; D:p=&a;
52.为了避免在嵌套的条件语句if—else中产生二义性,C语言规定:else总与( )配对B
A:缩排位置相同的if B:其之前最近的未配对的if
C:其之后最近的if D:同一行上的if
53.设有说明:char w; int x; float y; double z; 则表达式w*x+z-y值的数据类型为().D
A:float B:int C:char D:double
54.整型变量x=1,y=3,经下列计算后,x的值不等于6的是C
A:x=(x=1+2,x*2) B:x=y>2?6:5 C:x=9-(--y)-(y--) D:x=y*4/2
55.若有定义:int aa[ 8];则以下表达式中不能代表数组元aa[1]的地址的是().C
A:&aa[0]+1 B:&aa[1] C:&aa[0]++ D:aa+1
56.若有定义int a[10],*p=a;,则p+5表示A
A:元素a[5]的地址 B:元素a[5]的值
C:元素a[6]的地址 D:元素a[6]的值
57. C语言中运算对象必须是整型的运算符是().A
A:%= B:/ C:= D:〈=
58.若二维数组a有m列,则在a[i][j]前的元素个数为().B
A:j*m+i B:i*m+j C:i*m+j-1 D:i*m+j+1
59.从循环体内某一层跳出,继续执行循环外的语句是A
A:break语句 B:return语句
C:continue语句 D:空语句
60.以下运算符中,优先级最高的运算符是().D
A:= B:!= C:*(乘号) D:()
61.逻辑运算符两侧运算对象的数据类型().D
A:只能是0或1 B:只能是0或非0正数
C:只能是整型或字符型数据 D:可以是任何类型的数据
62.若i为整型变量,则以下循环执行次数是().B
for(i=2;i==0;) printf("%d",i--);
A:无限次 B:0次 C:1次 D:2次
63.逗号表达式" (a=3*5,a*4),a+15 "的值是( ). C
A:15 B:60 C:30 D:不确定
64.fscanf函数的正确调用形式是().D
A:fscanf(fp,格式字符串,输出表列);
B:fscanf(格式字符串,输出表列,fp);
C:fscanf(格式字符串,文件指针,输出表列);
D:fscanf(文件指针,格式字符串,输入表列);
65.C语言的switch语句中case后B
A:只能为常量
B:只能为常量或常量表达式
C:可为常量或表达式或有确定值的变量及表达式
D:可为任何量或表达式
66.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为().C
A:int B:float C:double D:不确定
67. 下列标识符中,不合法的C语言用户自定义标识符是().B
A:printf B:enum C:_ D:sin
68.以下定义语句中,错误的是().D
A:int a[]={1,2}; B:char *a[3];
C:char s[10]="test"; D:int n=5,a[n];
69.若有下列定义,则对a数组元素地址的正确引用是().B
int a[5],*p=a;
A:&a[5] B:p+2 C:a++ D:&a
70.在C语言程序中().B
A:函数的定义可以
嵌套,但函数的调用不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数调用均可以嵌套
D:函数的定义和函数调用不可以嵌套
71.设有定义"float y=3.45678;int x;",则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达
式是( ). D
A:y=(y*100+0.5)/100.0 B:y=(y/100+0.5)*100.0
C:y=y*100+0.5/100.0 D:x=y*100+0.5,y=x/100.0
72.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是().B
A:2 B:3 C:4 D:无确定值
73.已知结构类型定义和变量声明如下:
struct sk
{int a;float b;}data[2],*p;
若有p=data,则以下对data[0]中成员a的引用中错误的是( ). A
A:data[0]->a B:data->a
C:p->a D:(*p).a
74.下列格式符中,可以用于以8进制形式输出整数的是( ). C
A:%d B:%8d C:%o D:%1d
75.语句while(!E);中的表达式!E等价于().A
A:E==0 B:E!=1 C:E!=0 D:E==1
76.对二维数组的正确说明是( ). B
A:int a[][] = {1,2,3,4,5,6};
B:int a[][3] = {1,2,3,4,5,6};
C:int a[2][] = {1,2,3,4,5,6};
D:int a[2][3] = {1,2,3,4,5,6,7}
77.下列数据中,为字符串常量的是().B
A:A B:"house"
C:How do you do. D:$abc
78.函数调用:strcat(strcpy(str1,str2),str3)的功能是D
A:将串str1复制到串str2中后再连接到串str3之后
B:将串str1连接到串str2之后再复制到串str3之后
C:将串str2连接到串str1之后再将串str1复制到串str3中
D:将串str2复制到串str1中后再将串str3连接到串str1之后
79.判断两个字符串是否相等,正确的表达方式是C
A:while(s1= =s2)
B:while(s1=s2)
C:while(strcmp(s1,s2)= =0) D:while(strcmp(s1,s2)=0)
80.若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为().D
A:printf("%d",*(a+5)); B:printf("%d",p[5]);
C:printf("%d",*(p+5)); D:printf("%d",*p[5]);
81. C语言程序中必须有的函数是().B
A:#include "stdio.h" B:main
C:printf D:scanf
82.以下运算符中,优先级最高的运算符是().C
A:|| B:% C:! D:==
83.在下列程序段中,枚举变量c1,c2的值依次是().A
enum color {red,yellow,blue=4,green,white} c1,c2;
c1=yellow;c2=white;
printf("%d,%d\n",c1,c2);
A:1,6 B:2,5 C:1,4 D:2,6
84.int a[10]={1,2,3,4,5,6,7,8};int *p;p=&a[5];p[-3]的值是().B
A:2 B:3 C:4 D:不一定
85.已知有如下的结构类型定义和变量声明:
struct student
{ int num;
char name[10];
}stu={1,"marry"},*p=&stu;
则下列语句中错误的是( ). C
A:printf("%d",stu.num); B:printf("%d",(&stu)->num);
C:printf("%d",&stu->num); D:printf("%d",p->num);
86.int a=3,b=2,c=1;
if(a>b>c)a=b;
else a=c;
则a的值为().C
A:3 B:2 C:1 D:0
87.已定义以下函数
fun(char *p2, char *p1)
{ wh
ile((*p2=*p1)!='\0'){ p1++;p2++; }
}
函数的功能是( ) A
A:将p1所指字符串复制到p2所指内存空间 B:将p1所指字符串的地址赋给指针p2
C:对p1和p2两个指针所指字符串进行比较 D:检查p1和p2两个指针所指字符串中是否有'\0'
88.enum a {sum=9,mon=-1,tue};定义了().C
A:枚举变量 B:3个标识符
C:枚举数据类型 D:整数9和-1
89.变量的指针,其含义是指该变量的().B
A:值 B:地址 C:名 D:一个标志
90.已知有语句"FILE *fp; int x=123; fp=fopen("out.dat","w");",
如果需要将变量x的值以文本形式保存到一个磁盘文件out.dat中,则以下函数调用形式中,正确的是( ). B
A:fprintf("%d",x);
B:fprintf(fp,"%d",x);
C:fprintf("%d",x,fp); D:fprintf("out.dat","%d",x);
91.设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值语句是().B
A:c=*p1+*p2; B:p2=c;
C:p1=p2; D:c=*p1*(*p2);
92.若变量已正确定义并赋值,下面符合C语言语法的表达式是().B
A:a:=b+1 B:a=b=c+2
C:int 18.5%3 D:a=a+7=c+b
93.C语言规定,在一个源程序中,main函数的位置().C
A:必须在最开始 B:必须在系统调用的库函数的后面 C:可以任意 D:必须在最后
94. int a=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为().B
A:1 B:2 C:3 D:不一定
95.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______. C
A:0 B:1 C:2 D:3
96.下面正确的赋值语句是(设char a[5],*p=a;)(). A
A:p="abcd"; B:a="abcd";
C:*p="abcd"; D:*a="abcd";
97.C语言源程序的基本单位是().B
A:过程 B:函数 C:子程序 D:标识符
98.在C语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为().A
A:0 B:1 C:True D:非0
99.相同结构体类型的变量之间,可以().B
A:相加 B:赋值 C:比较大小 D:地址相同