C语言编程 Flashcards
(单选)C语言编程的基本结构是由函数组成的,每个函数都是由变量定义说明部分和算法执行部分组成。其中变量定义的位置,可以是在函数的___。
A:中间位置
B:最后位置
C:开始位置
D:任意位置
C:开始位置
所有变量都要先定义再使用,一般在开始位置。
(单选)下列计算机程序设计语言当中,哪一种不需要编译解释,可以由计算机系统直接识别并执行的是___。
A:汇编语言 B:中级语言 C:机器语言 D:高级语言 E:C语言 F:C++语言 G:Java语言
C:机器语言
机器指令的机器语言。
(单选)在C语言使用标准库函数时,只要将些函数相关定义说明的____头文件, 包含在所使用程序源代码中,就可以正常使用
A:.c B:.CPP C:.h D:.exe E:.obj
C:.h
使用标准库函数的.h头文件。
(单选)机器语言就是____代码组成的指令序列。
A:八进制 B:二进制 C:十六进制 D:十进制 E:十二进制
B:二进制
(多选)头文件stdio.h的文件名,是C语言系统标准库函数中有关____函数的英文简略缩写形式。
A:绘图 B:输入 C:数学计算 D:输出 E:内存管理
B:输入
D:输出
(多选)机器指令由_____两部分组成,每一条机器指令,可使计算机执行一个简单特定的操作。
A:操作码 B:数据 C:操作数 D:存储方式 E:存储内容
A:操作码
C:操作数
(多选)高级语言编写的源程序必需要“翻译”成机器指令才能执行。一般分为____两种方式。
A:undefined B:手写方式 C:编译方式 D:定义方式 E:解释方式 F:说明方式
C:编译方式
E:解释方式
(填空) C语言程序源代码中如果有定义: #define PI 3.14 则程序执行: float y; y=4*PI*2*2; 变量y的值为\_\_\_\_。
50.24
(填空)
下列程序运行后输出结果为sum=____。
main()
{int i=1,sum=0;
aaa: if(i!=6)
{sum=sum+i;
i=i+1;
goto aaa;
}
printf(“sum=%d\n”,sum);
}
15
(填空)
下列程序运行后输出结果为the sum is ____。
main()
{ float sum=0;
float i=1;
while (i!=10)
{ sum+=1/i ;
i++;
}
printf(“the sum is %f \n”,sum);
}
2.83
(填空)
使用C语言标准库函数中的scanf()函数,作为运算结果等数据的____执行命令语句。
输入
(填空)
汇编语言指令的_____部分,使用英语单词省略形式符号表示,地址码部分直接写变量名。
操作码
(填空)
汇编语言指令_____的地址码部分,直接使用变量名。
操作数
(填空)
汇编语言的编译效率很高,最接近_____指令,但又比其接近用户。
机器
(填空)
高级语言的____方式,其特点是每次需要运行时,都离不开翻译程序环境,需要逐条读入检查和翻译程序源代码每条命令,也不生成.obj目标程序。
解释
(填空)
高级语言的____方式,用编译程序把整个源程序代码一次性翻译成用机器语言表述的目标程序。
编译
(判断)
C语言程序可以由许多源代码程序文件组成。
正确
可编译统调组成一个可执行程序,便于软件开发。
(判断)
每个C.源代码文件可由许多函数组成,便于功能模块化。
正确
(判断)
编译的.C源程序成功后生成.OBJ文件。
正确
表示源代码无语法错误。
(判断)
源程序.C文件不用生成.OBJ文件,也可以生成.EXE文件。
错误
生成.OBJ文件才可链接生成.EXE文件。
(判断)
C源代码程序中必须要有一个main()函数。
正确
main()函数是C程序的主调函数。
(判断)
使用.h包含文件说明需要使用C语言的标准库函数。
正确
使用C语言的标准库函数,需将相关.h文件包含到源程序中。
(单选)
如果在程序设计过程中需要使用系统标准库函数中的数学函数(如求指数幂的pow(x,3)函数等),需用include命令将下列_____文件,包含在程序源代码中。
A:stdio.h B:string.h C:conio.h D:math.h E:graphics.h F:malloc.h
D:math.h
(单选)
在函数内部定义的变量,都是____,其作用范围只限于函数内部。
A:全局变量
B:数值变量
C:局部变量
D:常用变量
C:局部变量
(单选)
宏代换常量定义命令是_____。
A:#include
B:int
C:#if
D:#define
D:#define
(单选)
____是定义在所有函数之外的变量。
A:局部变量
B:赋值变量
C:全局变量
D:内存变量
C:全局变量
(单选)
在printf()命令语句中,用%c控制符,是以ASCII____形式输出运行结果。
A:字符
B:数值
C:数字
D:二进制码
A:字符
(多选)
在程序调试过程中,主要有____三大步骤,这些都可能出现相关错误信息提示。
A:编译处理 B:编排格式 C:链接组建 D:对齐处理 E:计算执行
A:编译处理
C:链接组建
E:计算执行
(多选)
从C语言源代码程序的整体结构上看,一般主要包括____三个基本部分组成。
A:赋值命令部分 B:初始定义说明部分 C:执行部分 D:主函数main()部分 E:用户自定义函数部分
B:初始定义说明部分
D:主函数main()部分
E:用户自定义函数部分
(多选)
C语言每个定义函数都是由____和____这两部分组成。
A:函数计算
B:函数首
C:函数调用
D:函数体
B:函数首
D:函数体
(多选)
C语言的标识符是在程序设计过程中,需要使用的____等,需要用户自己定义命名,以便程序执行调用。
A:数据变量
B:字符常量
C:自定义函数
D:数据值
A:数据变量
C:自定义函数
(多选)
下面是C语言系统保留关键字是____。
A:char B:Fn C:float D:while E:int F:_abc
A:char
C:float
D:while
E:int
(填空)
使用组建中的“____”命令对程序源代码进行处理,主要是检查有没有语义或语法方面的错误。
编译
(填空)
使用“____”链接命令,系统将已生成的.obj文件链接生成.exe命令文件。
组建
(填空)
编译预处理命令以字符____号开头。
#
(填空)
如果小写字母“x”是常量数据,在对变量赋值时,要用一对____引号引起来。
单
(填空)
下面是将大写字母转换为小写字母的程序源代码:
main()
{ int c; /定义变量类型/
c=’B’; /变量赋值/
printf(“ c=%c\n”, c);
printf(“ c=%d\n the small letter is %c\n”, c,c____);
}
上面程序执行后,输出结果为
c=B
c=66
the small letter is b
+32
(判断题)
无符号位的短整型变量,存放最大值的十进制数为65535。
正确
(填空)
Char字符变量占内存空间为____个字节。
1
(填空)
int短整型变量占内存空间为____个字节。
2
(多选题) 常用C语言整型常量对应有\_\_\_\_。 A:十进制数 B:八进制数 C:带小数的实数 D:十六进制数
A:十进制数
B:八进制数
D:十六进制数
(判断题)
定义变量后不用对变量赋值,可直接使用。
错误
(判断题)
初始化定义的变量可直接使用。
正确
使用前变量已赋值。
(判断题)
不同类型数据混合运算时,运算结果数据的类型取其较长数据类型。
正确
程序运算时按较长数据类型转换。
(判断题)
假使整型、单精度和字符型数据混合运算,最后运算结果的数据类型是double双精度。
正确
程序执行时单精度转双精度运算是系统自动转换。
(判断题)
如果”=”赋值运算两侧数据类型不一致,系统无法进行类型转换。
错误
系统会自动进行类型转换。
(判断题)
C语言赋值运算符“=”之前再加上其它二目运算符,可构成复合赋值运算。
正确
复合赋值运算用于二元运算的计算结果需赋值给变量。
(判断题)
.除”()”等初级运算符之外,单目运算符优先级别最高
正确
单目运算符的运算优先级高于多目运算符。
(判断题)
强制类型转换会改变已定义变量的类型
错误
不会改变已定义变量类型。
(多选题)
C程序设计的基本算术运算有____。
A:加法运算符 B:减法运算符 C:乘法运算符 D:除法运算符 E:逻辑运算符 F:求余运算符 G:关系运算符
A:加法运算符 B:减法运算符 C:乘法运算符 D:除法运算符 E:逻辑运算符 F:求余运算符
(判断题)
逗号表达式运算值取是最后逗号后表达式的值。
正确
正确
是整个逗号表达式运算结果。
(判断题)
逗号运算符的优先级别最低。
正确
属多目运算符。
(判断题)
关系运算表达式只有成立或不成立两种逻辑值。
正确
只有真假两种逻辑值。
(判断题)
关系运算中”==”或”!=”优先级别相对较低。
正确
低于其他关系运算符。
(判断题)
逻辑非”!”运算的优先级要高于其他逻辑运算。
正确
“!”运算优先级高于其他逻辑运算。
(判断题)
只要”&&”前面表达式值为0,则其后表达式不再计算 。
正确
“短路”规则。
(判断题)
条件运算符构成条件运算也称三目运算。
正确
需要有3个运算对象。
(判断题)
条件运算最终结果取决于”?”前面表达式值。
正确
取决于运算符”?”前面”表达式1”的值。
(单选题)
下面字符常量值表示不正确是___。(注,都带有单引号)
A:E B:\107 C:\x3D D:\108 E:69
D:\108
八进制没有数字8这个值。
(单选题)
____是用十六进制数表示ASCII字符的正确形式。
A:0xA6
B:\128
C:\x37
D:256
C:\x37
十六进制表示ASCII字符正确形式为\xnn,n为十六进制数。
(单选题)
当a=1;b=2;c=3时,表达式a 〉b&&(c=a+5)运算后,c的值为____。
A:2
B:3
C:4
D:5
B:3
a〉b运算已使整个表达式不成立。
(单选题)
以下C语言转义字符表示不正确的是____。
A:’\’
B:’\n’
C:’\x1f’
D:’0101’
D:’0101’
除’0101’外,其他都是正确转义字符。
(单选题)
以下C语言描述中,优先级最高的运算符是____。
A:〈=
B:=
C:%
D:&&
%算术求余运算符
(单选题)
计算(a=(2,3,4))表达式后, a+1的值是____。
A:2
B:3
C:4
D:5
D:5
a赋值为4。
(单选题)
表达式’6’!=6的计算值是____。
A:true
B:6
C:1
D:0
C:1
字符’6’的ASCII值不是6,使表达式成立。
(单选题)
如果执行int x=10;则表达式x+(char)1/2.0运算值的数据类型是____。
A:int
B:double
C:float
D:unsigned
B:double
常数2.0是浮点类型常数,计算时会自动转换为double型。
(单选题)
以下C语言常量不正确的是____。
A:32L
B:0x41
C:345
D:058
D:058
八进制数没有数字8。
(单选题)
若执行int a=1,b=2,c=3;则以下值为0的表达式是____。
A:a||b
B:a!=b
C:!((a+b)!=c-1)
D:(a+1==b)||(b=c-1)
C:!((a+b)!=c-1)
根据运算符优先级别,表达式((a+b)!=c-1) 值为真。
(多选题) 八进制数,其正确的表示形式是\_\_\_\_。 A:\105 B:227 C:0xFF D:\203 E:\318
A:\105
D:\203
(多选题)
C语言定义内存变量数据类型时,可确定变量的____。
A:正负数转换 B:存放数据的取值范围 C:存放时间 D:存储空间大小 E:存放固定位置
B:存放数据的取值范围
D:存储空间大小
(填空题)
float单精度变量,以____个字节为一个存储单元。
4
(填空题)
定义无符号短整型数据类型(unsigned short int)变量,其二进制的____位全部用作表示数据值。
16
短整型占2个字节,无符号位,16位都为数据位。
(填空题)
执行int s=6;则计算(s%2+(s+1)%2)表达式值为____。
1
由于s%2=0,(s+1)%2=(6+1)%2=1,所以表达式计算值为1。
(填空题)
执行int a;则计算(a=25/3%3)表达式后,a值为____。
2
由于”/”和”%”的优先级一样,按照从左到右的规则,25/3=8,8%3=2,所以值为2。
(填空题) 如果有定义: int a=7; float x=2.5, y=4.7; 则表达式(x+a%3*(int)(x+y)/4)的计算值是\_\_\_\_。
3.500000
由于有浮点类型混合运算时都向高精度方向转换,a%3=1;int(x+y)/4=7/4=1;所以x+1*1=2.500000+1=3.500000。
(填空题)
用3位二进制表示信息数据,其最____值二进制数为111。
大
3位最大二进制值为111。
(填空题)
int a=14,b=15,x;
char c=’A’;
x=(a!=b-1)||(c==’B’);
printf(“x=%d”,x);
执行该程序段后,实际运行输出结果为____。
x=0
表达式(a!=b-1)和(c==’B’)都不成立,实际运行输出结果为x=0。
(填空题)
字符____“AB”在内存中占3个字节。
串
该字符串在内存中的存储是A、 B 、\0 各占一个字节。
(填空题)
int x=11;
printf(“(x++1/3)=%d\n”,x++1/3 );
输出结果为____。
(x++*1/3)=3
先使用x,再自增,11*1等于11,然后11/3结果3。
(单选题) 下面列出的赋值表达式语句,不正确的是\_\_\_\_。 A: b=a/b*c; B: a=6; C:d=a<b; D: x=x%x; E: a*e=2; F: c=getchar(); G:n=sin(x);
E: a*e=2;
赋值表达式只能对变量赋值。
(单选题) 正确使用的函数调用语句形式为\_\_\_\_。 A:fabs() B:putchar() C:getch(); D:getchar(C); E:getche()
getch();
(单选题) 正确使用的表达式语句形式为\_\_\_\_。 A:m=m*n B:c=b=3*5+sin(x); C:c=9 D:x*y-e=8;
B:c=b=3*5+sin(x);
(单选题) 以下属于C语言正确赋值表达式的是\_\_\_\_。 A:d=3+e+7 B:d=4+e,e++ C:d=5+e=d D:d=e++=d+2
d=3+e+7
(单选题) 下面用作单个字符输出的函数为\_\_\_\_。 A:getchar() B:puts() C:putchar() D:gets()
putchar()
(单选题)
main()
{int a=5;
printf(“\na=%d”,++a+2);
}
输出结果是____。
A:a=6
B:a=8
C:a=5
D:8
a=8
(单选题)
下列程序段正确的数据输入形式是____。
main()
{int i,j,k;
scanf(“%d,%3d%d”,&i,&j,&k);
printf(“%d,%d,%d\n”,i,j,k);
}
A:12345678
B:123,*45678
C:123,456,78
D:123,45678
123,45678
(多选题)
putchar(x)函数中的x参数可以是____。
A:字符变量 B:字符值函数 C:字符常量 D:ASCII控制字符 E:浮点实型变量 F:ASCII码值 G:逻辑值常量
A:字符变量
C:字符常量
D:ASCII控制字符
F:ASCII码值
(多选题)
下面能正确处理单个字符的函数是____。
A:getchar(); B:getche(); C:gets(‘E’); D:putchar(‘S’); E:puts(A); F:getch();
A:getchar();
B:getche();
D:putchar(‘S’);
F:getch();
(填空题)
正确输入输出unsigned short int变量最大值,以十进制表示为____。
65535
(填空题)
正确输入输出signed short int变量最大正数值,以十进制表示为____。
32767
(填空题)
空语句命令的执行标志为____。
;
(填空题)
.gets()是有关____数据输入处理的函数。
字符串
(填空题)
printf()中按整型数据实际长度输出的控制字符为%____。
d
(填空题)
printf()函数中以长整型输出数据的转换控制字符为%____。
ld
(填空题)
printf()函数中以十六进制输出无符号整数的转换控制字符为%____。
x
(填空题)
printf()函数中输出无符号类整型数据的转换控制字符为%____。
u
(填空题)
printf()函数中输出字符串的转换控制字符为%____。
s
(填空题)
printf()函数中输出回车操作的转换控制符为____。
\n
(单选题)
若变量c为char类型,能正确判断出c为小写字母的表达式是____。
A:’a’<=c<=‘z’
B:c>=‘a’||c<=‘z’
C:c>=‘a’&&c<=‘z’
D:a<=c&&z>=c
c>=‘a’&&c<=‘z’
(单选题)
以下表示方法不正确的语句结构是____。
A:if(x>y);
B:if(x=y)&&(x!=0)x+=y;
C:if(x!=y)scanf(“%d”,&x);else scanf(“%d”,&y);
D:if(x<y){x++;y++;}
if(x=y)&&(x!=0)x+=y;
(单选题)
下列关于switch语句和break语句的描述中,只有____是正确的。
A:break是switch语句中的一部分
B:在switch 语句中必须使用break语句
C:在switch 语句中可根据需要使用或不使用break语句
D:以上三种说法有两个是正确的
C:在switch 语句中可根据需要使用或不使用break语句
(单选题)
若输入B,以下程序的运行结果为____。
main()
{char grade;
scanf(“%c”,&grade);
switch(grade)
{case ‘A’: printf(“>=85”);
case ‘B’:
case ‘C’: printf(“>=60”);
case ‘D’: printf(“<60”);
default : printf(“error”);
}
}
A: >=85
B:>=60
C:>=60<60error
D:error
C:>=60<60error
(单选题)
程序算法实验与分析。执行以下程序段时,从键盘上输入9,则输出结果是____。()
int x;
scanf(“%d”,&x);
if(x–<6) printf(“%d”,x);
else printf(“%d”,x++);
A:11
B:10
C:9
D:8
D:8
(单选题)
程序算法实验与分析。执行以下程序段后,输出结果是_____.
int i=1,j=1,k=2;
if((j++||k++)&&i++)
printf(“%d,%d,%d\n”,i,j,k);
A:1,1,2
B:1,2,2
C:2,2,2
D:2,2,3
C:2,2,2
(多选题)
完整的C程序设计条件分支结构语句,包括____。
A:简单if条件语句; B:else分支语句; C:if-else分支语句; D:case分支语句; E:else-if多路分支语句; F:switch-case开关条件语句;
A:简单if条件语句;
C:if-else分支语句;
E:else-if多路分支语句;
F:switch-case开关条件语句;
(多选题)
以下程序实现将两个变量数值从大到小输出,完成程序填空。
main()
{float a,b,____;
scanf(“%f%f”,&a,&b);
if(a<b)
{t=a;
____;
b=t;
}
printf(“%5.2f, %5.2f\n”,a,b);
}
A:t
B:b=a
C:t=b
D:a=b
A:t
D:a=b
(填空题)
执行以下程序输出结果为______。
main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0) z=0;
else z+=1;
printf(“%d\n”,z++);
}
2
(填空题)
执行以下程序,输出结果是____。
main( )
{ int a=-1,b=1,k;
if((++a<0)&&!(b–<=0))
printf(“%d %d\n”,a,b);
else
printf(“%d%d\n”,b,a);
}
10
(填空题)
else-if多路结构可看成是每个____后面,又嵌套了一个if-else结构。
else
(填空题)
完成如下程序。
main()
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: ____;
case 2: a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
执行程序输出结果是a=2,b=1
a++
(填空题)
若执行以下程序时从键盘上输入10,则输出结果是10,完成程序填空。
main()
{ int n;
scanf(“%d”,&n);
if(n++<10)
printf(“%d\n”,n);
else
printf(“%d\n”,____);
}
–n
(单选题)
设执行程序段,则有____。
int x=0,s=0;
while(!x!=0) s+=++x;
printf((“%d”,s);
A:输出0
B:输出1
C:无限次执行程序段
D:程序中表达式非法
B:输出1
(单选题)
while(!E);中表达式!E等价于____。
A:E!=0
B:E!=1
C:E==0
D:E==1
C:E==0
只有当E==0时,!E才会为真,因此正确答案是E==0。
(单选题)
下面程序段运行结果是____。
int n=0;
while(n++<=2);
printf(“%d”,n);
A:2
B:4
C:6
D:8
B:4
由于n++<=2中是先取n值运算,然后才自加,退出循环同时再自加,因此正确答案是4。
(填空题)
在for(A1;A2;A3)执行过程中, A1表达式执行____次
1
(填空题)
下面程序段执行后,输出n的值是_____。
int i,j,n;
for (i=1;i<=10;i++)
{ n=0;
for (j=1;j<=10;j++)
n=n+j;
}
printf(“n=%d\n”,n);
55
include “stdio.h”
(填空题)
以下程序运行后,输出结果是____。
main()
{ int i=0;
while(1){ printf(“*”);i++;
if(i<3) break;
}
printf(“\n”);
}
*
由于第一次循环过程中i=1<3成立,终止循环,因此printf仅执行一次,因此正确答案是*。
(单选题)
如果有int a[10];则对数组元素的正确引用是_____。
A:a[-5]
B:a[10]
C:a[10-2]
D:a[3.5],
C:a[10-2]
(单选题)
执行下面程序段,输出结果是_____。
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=0; i<3; i++)
printf(“%d”,x[i][2-i]);
A:159
B:357
C:147
D:369
B:357
注意“%d”中无空格。
(单选题)
下面有关数组的描述,不正确的是_____。
A: 字符数组可存放字符串。
B:可按数组名对字符数组进行字符串输入输出。
C:不能通过赋值运算对数组进行整体赋值。
D:可用1个数值0对数组进行整体清零。
D:可用1个数值0对数组进行整体清零。
(单选题)
以下语句,不能正确定义二维数组并赋值的选项是_____。
A:int a[2][2]={{1},2,3};
B:int a[2][2]={{1},{2}};
C:int a[2][]={{1,2},{3,4}};
D:int a[][2]={1,2,3,4};
C:int a[2][]={{1,2},{3,4}};
这里定义时第二维下标不能省略。
(单选题)
执行以下程序段,输出结果是____。
char ch[2][4];
strcpy(ch,”red”);
strcpy(ch[1],”blue”);
ch[0][3]=’&’;
printf(“%s\n”,ch);
A:red
B:blue
C:red&blue
D:ch
C:red&blue
(单选题)
下面程序段运行后,输出结果是____。
char a[]=”abcdef”;
char b[]=”ABC”;
strcpy(a,b);
printf(“%s”,a);
A:ABCdef
B:ABC
C:abcdef
D:abc
B:ABC
字符串ABC,输出到\0为止。
(单选题)
执行下面程序段,输出结果是_____。
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d ”,x[i][i]);
A:1 4 7
B:1 5 9
C:3 5 7
D:3 6 9
B:1 5 9
(单选题)
如果a[][]有m列,则在a[i][j]元素之前的元素个数为____。
A:jm+i
B:im+j
C:im+j-1
D:im+j+1
B:i*m+j
(多选题)
C程序设计中引用数组元素时,在数组下标定义范围内,可以是_____。
A:整型表达式; B:负数常量; C:小数常量; D:整型常量; E:任何类型的表达式;
A:整型表达式;
D:整型常量;
(多选题)
执行定义数组 int x[6];语句,则有效引用数组元素的有_____。
A:x[3+2] B:x[1-5%3] C:x[3*2] D:x[1+5/2] E:x[1+5] F:x[6-2*3]
A:x[3+2]
D:x[1+5/2]
F:x[6-2*3]
(填空题)
执行以下程序段,输出结果是_____。
int i,a[10];
for(i=9;i>=0;i–)
a[i]=10-i;
printf(“%d%d%d”,a[2],a[5],a[8]);
852
(填空题)
执行下面程序段, 只输出”Apple”,完成程序算法填空。。
int i,j;
char c[]=”an Apple”;
for(i=0; i<=____;i++ )
{ j=i+3 ;
printf(“%c”,c[j]); }
4
(填空题)
执行以下程序段,输出结果是______。
main()
{int a[3][3]={ {1,2},{3,4},{5,6} },i,j,sum=0;
for(i=1;i<3;i++)
for(j=0;j<=i;j++)
sum+=a[i][j];
printf(“%d\n”, sum);
}
18
(填空题)
求一个3×3矩阵中,主对角线(左上至右下)元素之和。完成程序填空。
int a[3][3];
int i,j,sum=0;
printf(“\nPlease input data: \n”);
for (i=0;i<3;i++)
scanf(“%d%d%d”,&a[i][0], &a[i][1],&a[i][2]);
for (i=0;i<3;i++)
sum = _____;
printf(“\nThe data is :%d”,sum);
sum+a[i][i]
(填空题)
执行下面程序段,运行输出结果是_____。
char a[10]=”ABC”, b[]=”WXYZ”;
int i=0;
strcat(a,b);
while (a[i++]!=’\0’) b[i]=a[i];
puts(b);
WBCWXYZ
执行While(a[i++]!=’\0’)表达式后,使i加1。
(填空题)
以下程序段,输出结果是______。
char ch[7]={ “678abc321”};
int i,sum=0;
for(i=0;ch[i]>=’0’ && ch[i]<=’9’;i+=2)
sum=10*sum+ch[i]-‘0’;
printf(“%d\n”,sum);
68
(单选题)
如果对函数类型未加说明,则默认函数类型是_____。
A:char B:double C:int D:void E:float
C:int
(单选题)
下面C程序设计叙述正确的是_____。
A:要调用的函数须在main函数中定义
B:C程序总是从第一定义的函数开始执行
C:C程序总是从main函数开始执行
D:main函数必须放在程序开始部分
C:C程序总是从main函数开始执行
(单选题)
对C程序设计中函数描述正确的是_____。
A:C程序所有函数存在调用关系
B:调用函数时只能将实参值传给形参
C:函数必须有返回值
D: C函数既可嵌套定义
B:调用函数时只能将实参值传给形参
(单选题)
下列各种类型变量中,必须在函数外定义的是____。
A:内部静态类型
B:寄存器类型
C:自动类型
D:外部静态类型
D:外部静态类型
(单选题)
C程序设计规定程序中各函数之间____调用。
A:不允许直接递归只允许间接递归
B:既允许直接递归也允许间接递归
C:不允许直接递归也不允许间接递归
D:允许直接递归不允许间接递归
B:既允许直接递归也允许间接递归
(单选题)
C语言默认的存储类型是____。
A:extern
B:static
C:auto
D:register
C:auto
(单选题)
以下各函数定义首部中正确的是_____。
A:void fn(int a,b)
B:void fn(var :Integer,var b:Integer)
C:void fn(int a,int b)
D:Sub fn(a as integer,b as integer)
C:void fn(int a,int b)
(单选题)
以下程序有错误,错误原因是____。
main()
{int x=5,k;
void prt_char();
k=prt_char(x); }
A:void prt_char( );是函数调用语句,不能用void说明;
B:函数名不能有char字符;
C:函数说明和函数调用不一致
D:函数名不能使用下划线;
C:函数说明和函数调用不一致
(多选题)
下面属于正确使用return语句的有_____。
A:return return(x);
B:return a*b;
C:return 6;
D:return(sin(x));
B:return a*b;
C:return 6;
D:return(sin(x));
(多选题)
C语言对变量存储类型定义,有以下____几类。
A:int B:auto C:float D:extern E:define F:static G:register
B:auto
D:extern
F:static
G:register
(填空题)
下面程序的执行结果是_____。
void f1(void)
{ int x=0;
x+=1;
printf(“%d”,x);
}
main()
{ int x=6;
f1();
f1();
f1();
printf(“%d”,x);
}
1116
include<stdio.h>
(填空题)
下面程序执行结果是____。
main()
{ static int y[2]={6,12};
int z=20;
z=shift(y[0]);
printf(“%d,%d\n”,y[0],z);
}
shift(a)
int a;
{ return(a*=3);}
18
(填空题)
下面程序的执行结果是_____。
void f2(void)
{ static int x=0;
x+=1;
printf(“%d”,x);}
main()
{ f2( );
f2( );
f2();
}
123
(填空题)
定义函数时数据______,与函数调用返回值相同。
类型
(填空题)
定义函数时数据______,与函数调用返回值相同。
类型
(填空题)
被调函数中传数据的变量称为____变量。
形参
(填空题)
数组元素作函数参数时,传的是数据___。
值
(填空题)
数组____作函数参数时,传的是数组的起始地址。
名
(单选题)
以下计算不会引起歧义的宏定义是_____。
A:#define P(x) xx
B:#define P(x) (xx)
C:#define P(x) ((x)(x))
D:#define P(x) (x)(x)
C:#define P(x) ((x)*(x))
ABC 标识符
(单选题)
有如下C语言条件编译形式,其中ABC可以是____。
程序段 1
程序段 2
A:define或 include
B:fdef或include
C:ifdef或ifndef
D:ifdef或 ifndef 或if
D:ifdef或 ifndef 或if
(单选题)
在如下宏定义中,MAX代换的是_____。
#define MAX 20;
A:20.000000
B:20
C:20;
D:20.0
C:20;
是”20;”字串。
(单选题)
当#include文件名用尖括号时,寻找包含文件方式是_____。
A:先在程序目录搜索,再按系统目录搜索。
B:仅仅搜索源程序所在目录。
C:仅仅搜索当前目录。
D:直接按系统包含文件目录去搜索
D:直接按系统包含文件目录去搜索
(多选题)
条件编译指令主要有_____。
A:#define B:#if~#endif C:#if~#else~#endif D:#if~#elif~#endif E:#include F:#ifdef G:#ifndef
B:#if~#endif C:#if~#else~#endif D:#if~#elif~#endif F:#ifdef G:#ifndef
(多选题)
以下叙述正确的是____。
A:用#include包含文件扩展名后缀不能是“.C”。
B:宏替换不占用程序运行时间。
C:对头文件修改后,包含此文件程序不必再编译。
D:宏名必须用大写字母表示。
A:用#include包含文件扩展名后缀不能是“.C”。
C:对头文件修改后,包含此文件程序不必再编译。
D:宏名必须用大写字母表示。
define N 2
(填空题)
以下程序段中,for循环次数是_____。
…
for (i=1;i<=NUM; i++)
printf(“%d\n”,i);
…
8
define SQR(X) X*X
(填空题)
以下程序段输出结果值是_____。
…
int a=10,k=2,m=1;
a=SQR(k+m);
printf(“%d\n”,a);
…
5
define NODEBUG
(填空题)
以下程序段运行后输出是c=_____。
int a=20,b=10,c;
c=a/b;
printf(“a=%d,b=%d,”,a,b);
printf(“c=%d\n”,c);
2
include “stdio.h”
(填空题)
以下程序段运行后输出是_____。
…
int x=2;
PRINT(F(3)*x);
…
9
(填空题)
编译预处理命令是以“____”号为标志的语句。
#
(填空题)
编译预处理要___于其它执行语句。
先
(填空题)
宏定义有带和不带____的定义两种形式。
参数
(填空题)
可使用_____命令取消宏定义。
undef
include “____.h”
(填空题)
以下是求一数平方根程序段,填入应包含的头文件名。
…
float x=4,y;
y=sqrt(x);
printf(“y=%f\n”,y);
…
math
(单选题)
在函数内部定义的static变量,是____。
A:静态全局变量
B:局部变量
C:全局变量
D:静态局部变量
D:静态局部变量
(单选题)
执行以下程序段,输出结果是____。
int i, x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++)
printf(“%d,”,x[i][i]);
A:1,4,7
B:1,5,9
C:3,5,7
D:3,6,9
B:1,5,9
(单选题)
C程序设计定义宏代换需要使用的命令是_____。
A:scanf()
B:printf()
C:#include
D:#define
D:#define
(单选题)
下面程序段输出结果是x=____。
int x,y,z;
x=0;y=z=1;
x=x+(–z+(y++));
printf(“x=%d\n”,x);
A:0
B:1
C:2
D:3
B:1
(单选题)
以下属于C语言程序设计正确赋值表达式是____。
A:y+x=3+y
B:y=(x=0,x+y,y+1)
C:y=3+x=y
D:y=x++=y+2
B:y=(x=0,x+y,y+1)
(单选题)
执行以下程序段后,输出结果是_____.
int i=0,j=1,k=2;
if((j++||++k)&&++i)
printf(“%d,%d,%d\n”,i,j,k);
A:1,1,2
B:1,2,2
C:2,2,2
D:2,2,3
B:1,2,2
(单选题)
下面程序段运行结果是____。
int m=0;
while(++m<2);
printf(“%d”,m);
A:2
B:4
C:6
D:8
A:2
(多选题)
当循环表达式____时,程序不进入循环执行语句。
A:值为假时 B:成立时 C:不成立时 D:值为真时 E:值为1时 F:值为0时
A:值为假时
C:不成立时
F:值为0时
(填空题)
以下程序段输出结果值是_____。
#define SQR(X) (X)*(X)
int a=0,b=2,c=3;
a=SQR(b+c);
printf(“%d\n”,a);
25
(单选题)
调用函数时,若实参是数组名,则向函数传送的是____。
A:元素地址
B:数组地址
C:元素值
D:数组长度
B:数组地址
(单选题)
执行int *pointer[5];则以下描述正确的是____。
A:定义指向5个元素的指针
B:定义5个整型变量
C:定义指针数组
D:定义5个元素的整型数组
C:定义指针数组
(单选题)
下列程序段输出结果是____。
char *w[10]={ “ABCD”,”EFGH”,”IJKL”,”MNOP”},k;
for(k=1;k<3;k++)
printf(“%s “,w[k]);
A:EFG IJK
B:ABCD EFGH
C:EFGH IJKL
D:EFG IJK
C:EFGH IJKL
(单选题)
执行以下程序段,输出结果是_____。
char s[]={“one”,”two”,”three”},p;
p=s[1];
printf(“%c,%s\n”,*(p+1),s[0]);
A:t ,one
B:n ,two
C:o ,two
D:w ,one
D:w ,one
(单选题)
执行int x, *pb;则以下正确赋值语句为____。
A:pb=x;
B:pb=&x;
C:pb=x;
D:*pb=&x;
B:pb=&x;
(单选题)
以下程序段,执行后输出结果是____。
int f(int x,int *y){ if (x<y) return x; else return y;}
…
int a=7,b=8,p=&a,q=&b,*r;
r=f(p,q);
printf(“\n%d,%d,%d”, a, b, *r);
…
A:8,7,8
B:8,7,7
C:7,8,7
D:7,8,8
C:7,8,7
(单选题)
.有以下程序段,执行后输出结果是____。
int x[8]={8,0,6,5,0,9},*s;
s=x+5;
printf(“%d\n”,*s);
A:0
B:5
C:9
D:10
C:9
(多选题)
引用数组元素的方法主要有如下_____方式几类。
A:数组大小; B:数组下标; C:变量提示; D:数组地址加数值; E:指针变量;
B:数组下标;
D:数组地址加数值;
E:指针变量;
(多选题)
函数调用传递数组地址的方式有____。
A:形参实参都是数组; B:形参实参都是常量; C:形参数组实参指针; D:形参实参都是数据; E:形参指针实参数组; F:形参实参都是指针;
A:形参实参都是数组;
C:形参数组实参指针;
E:形参指针实参数组;
F:形参实参都是指针;
(多选题)
执行int a[2][]={{1,2},{3,4}};则以下计算为地址的是____。
A:a+1 B:*(&a[1][1]) C:*(a+0)+1 D:&a[0][0] E:a[1]+1 F:*(*(a+1)+1)
A:a+1
C:*(a+0)+1
D:&a[0][0]
E:a[1]+1
(填空题)
执行 int a[3][4];则计算a[2][3]的相对位置值为____。
11
计算2*4+3=11 。
(填空题)
下列程序段输出结果是____。
int m[10]={0,1,2,3,4,5,6,7,8,9},*p=m;
p=p+7;
printf(“%d “,*++p);
8
先自加,所以是8。
(填空题)
执行下面的程序段后,a的值为____。
int *v,ab;
a=100; v=&a; a=*v+23;
123
(填空题)
执行下面程序段后,表达式*–p的值是______。
static int a[ ]={12,16,18,20};
p=&a[2];
16
先自减,所以是16。
(填空题)
执行下面程序段后,输出结果是_____。
int x[2][3]={1,2,3,4,5,6};
int *p;
for(p=&x[0][0]; p<*x+6; p++)
{if((p-&x[0][0])%3==0)
printf(“%d”,*p);
}
14
由于if语句作用,输出1和4,格式为14。
(填空题)
计算*pointer++表达式的顺序关系是____。(用圆括号表示)
*(pointer++)
(填空题)
执行 int x, *px=&x, *pb; 再执行pb=px; 则pb指向_____变量。
x
(填空题)
使用数组____代表的是数组起始地址。
名
(填空题)
(填空题)
执行int a[2][2]={{1,2},{3,4}};则a+1为按____指向计算方式。
行
(填空题)
执行int a[2][]={{1,2},{3,4}};则a[0]+1为按____指向计算方式。
列
(填空题)
函数指针只能用于指向被调____。
函数
(填空题)
执行p=&x;pp=&p; pp为指向指针的____地址变量。
指针
(填空题)
用数组实现计算输入字符串长度,完成程序填空。
main()
{ int len=0;
char str[20], *p;
scanf(“%s”,str);
p=str;
while(*p!=’\0’)
{len++;
____; }
printf(“\nlength=%d”,len);
}
p++
(填空题)
输入5个数存放到数组a[]中,再输入1个数,检索该数在数组中位置。
main()
{int a[6],x,i;
printf(“\nInput 5 numbers:”);
/…/
for (i=1; i<=5; i++)
scanf(“%d”,a+i); /* 读数到a[1]…a[5] */
printf(“\nInput x:”);
scanf(“%d”,&x);
*a=x;
i=5; /* 将x存入a[0]中 */
while(x!=*(a+i))
____;
if(i>0)
printf(“%5d’s position is: %4d\n”,x,i);
/…/
else
printf(“%5d Not been found!\n”,x);
}
如程序运行输入输出结果:
Input 5 numbers: 1 3 5 7 9
Input x: 3
3’s position is 2
i–
(填空题)
查找字符串中最大值英文字母。
main()
{ char max, *s=”I am a student”;
int n;
max=*s;
while(*s!=’\0’)
{ if(*s>max)
max=*s;
______;}
printf(“\nThe max character is: %c”, max);
}
s++
(单选题)
malloc函数用于申请_____的内存空间。
A:结构体指针
B:结构体数组
C:单个结构体变量
D:多个成员变量
C:单个结构体变量
(单选题)
以下程序段输出结果是______。
struct student
{ short int x ;
short int *y;
} *p ;
short int dt[4]={ 10,20 ,30,40 };
struct student a[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]} ;
…
p=a;
printf(“%d,”,++p->x);
printf(“%d,”,(++p)->x);
printf(“%d\n”,++(*p->y));
…
A:10,20,20
B:50,60,20
C:51,60,21
D:60,70,31
C:51,60,21
输出语句1,先执行p->x 。
(单选题) struct {int number; float score; ...}student[2],*p; p=student; 则执行*P++;命令后,P指针值等效于\_\_\_\_\_。
A:student++
B:&student[1]
C:&student[0]
D:&student[2]
B:&student[1]
(单选题)
在下列选项中的_____结构,是一种可动态分配存储空间的构造类型。
A:数组
B:链表
C:结构体
D:共用体
B:链表
(单选题)
free()函数用于____其参数指针指向的内存空间。
A:扩充
B:锁定
C:解锁
D:释放
D:释放
(单选题)
共用体每个成员从____地址开始存放数据值。
A:加1后
B:不同
C:相同
D:最后
C:相同
(单选题)
枚举类型的每个元素值默认时,按_____枚举元素值自动加1取值。
A:前面
B:中间
C:后面
D:最后
A:前面
(单选题) 枚举类型引用只能在\_\_\_\_\_的取值范围内。 A:应用 B:赋值 C:定义 D:指向
C:定义
(单选题)
自定义数据类型是对已存在的数据类型进行___定义。
A:修改
B:扩大
C:重新
D:缩小
C:重新
(多选题) struct{ int number; ...}student1,*p; p=&student1; 则引用其变量方式有以下\_\_\_\_\_几种形式。
A:student1; B:student1.number; C:number; D:(*p).number; E:p->number;
B:student1.number;
D:(*p).number;
E:p->number;
(多选题)
单链表结构的每个结点,是由各节点______这两部分构成。
A:数据成员 B:数组成员 C:变量成员 D:地址成员 E:常量成员
A:数据成员
D:地址成员
include”stdio.h”
(填空题)
以下程序段输出的结果是______。
…
struct date
{short int year , month , day ;
}today ;
printf(“%d\n”,sizeof(struct date));
…
6
定义3个short int变量,所以答案为6。
(填空题)
设执行以下程序段,输出计算值为______。
struct s
{ int n ;
struct s *q;
} ;
struct s a[3]={ 5 , &a[1] , 7 , &a[2] , 9 ,’\0’},*p;
….
p=&a[0];
printf(“%d,”,++p->n);
…
6
计算顺序++(p->n)。答案为6。
(填空题)
下面程序段中的结构体变量 s 所占内存字节数是______。
union u
{char str[4];
short int i ;
long l ;
} ;
struct t
{short int j;
union u m ;
}s ;
…
6
共用体按最长成员计算,而不是所有成员之和。所以答案是6字节。
(填空题)
以下程序段的运行输出结果是______。
typedef struct{ char a[2]; short int b;}T;
T our;
…
printf(“%d\n”,sizeof(our));
…
4
所有成员之和。答案是4字节 。。
(填空题)
以下程序段的运行输出结果是______。
typedef union{ long a[2]; short int b[4]; char c[12];}Y;
Y your;
…
printf(“%d\n”,sizeof(your));
…
12
按最长成员计算,答案是12字节。
(填空题)
执行struct score_table student1; 语句,定义的是名为student1的结构体_____。
变量
(填空题)
必须对最低一级结构体_____变量进行引用。
成员
(填空题)
链表中无论访问的哪一个结点,都要从链表的____HEAD地址开始。
表头
(单选题)
C程序设计中,运算数据必须是整型的运算符是_____。
A:&
B:%
C:!
D:^
B:%
(单选题)
以下程序段运行结果是_____。
…
char a=-8;
unsigned char b=248;
printf(“%d,%d\n”,a>>2,b<<2);
…
A: -2,62
B:-2,992
C:4,-992
D:992,-2
B:-2,992
(单选题)
以下程序段运行结果是_____。
…
char x=3,y=6,z;
z=x^y<<2;
printf(“%x\n”,z);
... A:14 B:1b C:18 D:1c
B:1b
相当于x^(y«2)
(单选题)
以下程序段运行结果是_____。
…
unsigned a=065,b,c,d;
b=a>>4;
c=~(~0<<4);
d=b&c;
printf(“a=%o,d=%o\n”,a,d);
... A:a=62,d=3 B:a=63,d=5 C:a=65,d=3 D:a=5,d=3
C:a=65,d=3
(单选题)
以下程序段运行结果是_____。
…
int x=20;printf(“~x=%d\n”,~x);
... A:~x=-21 B:~x=-02 C:~x=-20 D:~x=-11
A:~x=-21
(多选题) 位段成员引用使用的运算符有\_\_\_\_\_。 A:>> B:. C:& D:-> E:<< F:*
B:.
D:->
(填空题)
按位“右移”运算,左边补______。
0
(填空题)
使用左移运算时,需注意高位数据_____。
溢出
(单选题)
程序设计中需要FILE类型文件读写操作时,需要执行_____。
A:#include“string.h”
B:#include“math.h”
C:#include“stdio.h”
D:#include“myfile.h”
C:#include“stdio.h”
用#include“stdio.h”包含FILE类型。
(单选题)
执行fseek(fp, 0, SEEK_SET);语句,表示从_____开始移动指针。
A:文件起始位置
B:文件中间位置
C:文件末尾位置
D:文件任意位置
A:文件起始位置
(单选题)
执行rewind(fp);语句,会使制定的文件指针自动回到_____位置。
A:任意点
B:文件头
C:文件中间
D:文件尾
B:文件头
回到文件头。
(单选题)
设fp是指向文件的指针。当指到文件尾时,feof(fp)函数返回值是_____。
A:NULL
B:0
C:非零值
D:EOF
C:非零值
(单选题)
C程序设计中的FILE文件结构类型,是由_____定义的。
A:数据
B:用户
C:系统
D:程序
C:系统
(单选题)
.执行fopen()函数,如果发生文件操作错误,则函数返回值是_____。
A:0
B:1
C:EOF
D:地址值
A:0
(单选题)
执行fclose(fp)函数,如果文件关闭成功,则返回值是_____。
A:0
B:1
C:-1
D:TRUE
A:0
(多选题)
C程序设计中文件定位函数,主要有以下_____几个。
A:fclose( ) B:fseek( ) C:fscanf( ) D:rewind( ) E:fread( ) F:ftell( )
B:fseek( )
D:rewind( )
F:ftell( )
(多选题)
C程序设计中文件读写类函数,主要有以下_____几个。
A:fputc( ) B:fgets( ) C:ftell( ) D:putw( ) E:fprintf( ) F:fseek( ) G:fscanf( ) H:fwrite( ) I:fread( )
A:fputc( ) B:fgets( ) D:putw( ) E:fprintf( ) G:fscanf( ) H:fwrite( ) I:fread( )
(多选题)
C程序设计中对文件管理的控制类函数,主要有以下_____几个。
A:fseek( ) B:clearerr( ) C:ftell( ) D:ferror( ) E:fread( ) F:remove( ) G:fputs( )
B:clearerr( )
D:ferror( )
F:remove( )
(多选题)
执行文件ftell()函数,将返回指针所在的_____位置。
当前
(多选题)
使用remove()函数, 可将指定文件永远____。
删除
(填空题)
请完成程序段补充填空部分。
……
FILE *fp;
char ch;
if((fp=fopen(“D:file1.txt”,”w”))= =NULL)
{printf(“cannot open this file . \n”);
exit(0);}
while((ch=getchar())!=’\n’)
________(ch,fp); /向文件写数据/
……
fputc
(填空题)
请完成程序段补充填空部分。
……
FILE *fp;
char string[60];
if((fp=fopen(“D:file2.txt”,”w”))==NULL)
{printf(“cannot open this file . \n”); exit(0); }
while(strlen(gets(string))>0)
_____(string,fp); /把字符串写入文件/
fputs(“\n”,fp);
……
fputs
(单选题)
调用函数时,如果实参是数组名,则向函数传送的是____。
A:各元素地址
B:第1个元素地址
C:数组长度
D:各元素中的值
B:第1个元素地址
(单选题)
如果定义了int (*pointer)[5],则如下描述正确的是____。
A:定义了指向5个元素的指针
B:定义了指针数组
C:定义了5个整型变量
D:定义5个元素整型数组
A:定义了指向5个元素的指针
(单选题)
下列程序段输出结果是____。
….
char *w[10]={ “ABCD”,”EFGH”,”IJKL”,”MNOP”},k;
for(k=2;k<=3;k++)
printf(“%s “,w[k]);
…
A: EFG IJK
B: EFGH IJKL
C: IJKL MNOP
D: IJKL
C: IJKL MNOP
(单选题)
执行以下程序段,输出结果是_____。
…
char s[]={“one”,”two”,”three”},p;
p=s[0];
printf(“%c %s\n”,*(p+1),s[2]);
…
A:n two
B:n three
C:t one
D:o two
B:n three
(判断题)
调用函数时,实参是一个数组名,则向函数传送的是数组的长度。
错误
(判断题)
C语言中的指针不但能指向整型和实型数据,还可以指向字符型数据。
正确
(判断题)
若有定义:int x[12], *p=x;则p+3指向数组元素x[3]。
正确
(判断题)
若int p1,p2;则p1+p2无实际意义
正确
(判断题)
若int *pointer[5];,表示定义了五个指针变量。
正确
(判断题)
如果char a[10]; 则scanf(“%s”, a);可为全部元素赋值。
正确
(判断题)
c语言main函数是不能带参数的。
错误
(单选题)
执行int x, *pb;则以下正确的赋值表达式为____。
A:pb=x
B:pb=&x
C:pb=&x
D:pb=*x
B:pb=&x
(单选题)
以下程序段执行后,输出结果是____。
…
int x[8]={8,0,6,5,0,9},*s;
s=x+5;
printf(“%d\n”,*s);
…
A:0
B:5
C:9
D:随机值
C:9
(单选题)
struct{int number;float score;…}student[2],p;
p=student;
则执行P++;命令后,P指向值等效于_____。
A:&student[0]
B:&student[1]
C:&student[2]
D:student++
B:&student[1]
(填空题)
下列程序段输出结果是____。
…
int m[10]={0,1,2,3,4,5,6,7,8,9},*p=m;
p=p+8;
printf(“%d “,*++p);
…
9
(填空题)
struct s
{int n ; struct s *q;};
struct s a[3]={ 5,&a[1],7,&a[2],9 ,’\0’},*p;
p=&a[0];
printf(“%d,”,++p->n);
6
(填空题)
…
char max, *s=”I am a student”;
int n;
max=*s;
while (*s!=’\0’)
{ if (*s>max)
max=*s;
______;}
printf(“\nThe max character is: %c”, max);
…
s++