C语言程序设计模拟试题4(附答案)new
- 格式:doc
- 大小:59.00 KB
- 文档页数:10
《C语言程序设计》模拟试卷四
一、单项选择题(每题2分,共30分)
1、下列对C语言特点的描述中,错误的是。
A)C语言不是结构化程序设计语言
B)C语言编程简洁明了
C)C语言功能较强
D)C语言移植性好
2、设变量a是整型,b是实型,c是双精度型,则表达式2+‘ a ’+b*c值的数据类型。
A)int B)float C)double D)不确定
3、在a=2,b=0,c;则执行c=b||a--;语句后,a和c的结果是。
A)0,1 B)1,0 C)1,1 D)2,0
4、在scanf()函数的给是说明符中,长整型数的输入格式说明符是。A)%d B)%ld C)%lf D)%x
5、以下程序的执行结果是。
main()
{ int n=1;
printf(“%d,%d,%d”,n,++n,n--); }
A)1,1,1 B)1,2,1 C)0,1,1 D)1,2,2
6、判断char型变量ch是否为大写字母的正确表达式是。
A)‘A’<=ch<=‘Z’
B)(ch>=‘A’)&(ch<=‘Z’)
C)(‘A’<=ch)AND(‘Z’>=ch)
D)(ch>=‘A’)&&(ch<=‘Z’)
7、能够完成如下函数计算的程序段是。
- 1 x < 0
y = 0 x = 0
1 x > 0
A)y = - 1 ; B)if ( x > = 0 )
if ( x != 0 ) if ( x > 0 ) y = 1 ;
if ( x > 0 ) y = 1 ; else y = 0 ;
else y = 0 ; else y = -1 ;
C)y = 0 ; D)y = - 1 ;
if ( x > = 0 ) if ( x > 0 ) y = 1 ;
if ( x > 0 ) y = 1 ; else y = 0 ;
else y = -1
8、下列循环语句中,执行循环体的次数是。
int i,j;
while(10) printf(“ABC”);
A)10次 B)0次 C)1次 D)无限次
9、若i、j已定义为int类型,则以下程序段中的内循环体的执行次数是。 for(i = 4; i; i--)
for(j = 0; j < 5; j++) { …… }
A)10 B)15 C)20 D)25
10、数组赋初值时的数据项的个数与数组元素的个数的下列关系中,错误的是。
A)大于 B)小于 C)等于 D)小于等于
11、下列数组初始化的定义中,错误的是。
A)int a[5]={a}; B)char s[5]=“a123b”;
C)int n[]={6,5,4,3,2,1}; D)int b[3]={1,2,3};
12、已知:static int a[][3]={{5},{3},{13}};数值为0的元素是。
A) a[0][0] B) a[0][2] C) a[1][0] D) a[2][0]
13、关于下列函数定义的描述中,错误的是。
A) 定义函数时必须指出函数名和函数的类型
B) 定义函数时可以省略函数的类型
C) 函数可以嵌套定义
D) 函数不可以嵌套定义
14、下面程序的输出结果是。
void prtv( int x)
{ printf(“%d\n”,++x); }
main()
{ int t=10;
prtv(t); }
A) 8 B) 9 C) 10 D) 11
15、下面程序的输出结果是。
main( )
{ int a[ ]={1,2,3},s,b,*p;
s=1;
p=a;
for(b=0;b<3;b++)
s*=*(p+b);
printf(“s=%d\n”,s); }
A) s=1 B) s=2 C) s=3 D) s=6
二、判断(每空1分,共10分)
1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。()
2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。
()
3、数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。()
4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使
用。()
5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。
()
6、字符串是C语言中一种基本数据类型,字符串总是以‘\n’作为结束标志。()
7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函
数。()
8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类
型。()
9、结构体与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。()
10、在发生函数调用时,主~被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传
递。()
三、程序填空(每小题2分,共12分)
1、求一个3位数各个位上值的和。(如123为1+2+3=6)
#include
main( )
{int m,s,a,b,c,d,e;
scanf("%d",&m);
a=m/100;
b=(1) ;
c=(2) ;
s=a+b+c;
printf("s=%d",s); }
2、求1!+2!+3!+4!+5!的和。
main()
{ int n,s=0,t=1;
for(n=1;n<=5;n++)
{ t=(3) ;
s=(4) ; }