资源描述
试卷编号:8229
所属语言:C语言
试卷方案:C语言期末模拟
试卷总分:100分
共有题型:5种
一、判断 共10题 (共计10分)
第1题 (1.0分) 题号:1265
假设所有变量均为整型,则表达式(a=2,b=3,b++,a+b)的值是5.
答案:N
第2题 (1.0分) 题号:1253
若有说明int c;则while(c=getchar());是正确的C语句.
答案:Y
第3题 (1.0分) 题号:25
如果想使一个数组中全部元素的值为0,可以写成
int a[10]={0*10};
答案:N
第4题 (1.0分) 题号:1279
C语言的double类型数据一般占4个字节.
答案:N
第5题 (1.0分) 题号:1252
break语句可用于循环体内,它将退出该重循环.
答案:Y
第6题 (1.0分) 题号:30
若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为6。
答案:Y
第7题 (1.0分) 题号:1267
程序的基本结构中选择结构又叫分支结构,有单分支与多分支两种.
答案:Y
第8题 (1.0分) 题号:1472
C语言中的标识符以字母或下划线开头,可跟任何字符.
答案:N
第9题 (1.0分) 题号:1246
在if语句中,else前一个语句可不加";".
答案:N
第10题 (1.0分) 题号:1245
在标准C中,"="是判断两个数是否相等.
答案:N
二、单项选择 共30题 (共计30分)
第1题 (1.0分) 题号:172
在C语言程序中()。
A:函数的定义可以嵌套,但函数的调用不可以嵌套
B:函数的定义不可以嵌套,但函数的调用可以嵌套
C:函数的定义和函数调用均可以嵌套
D:函数的定义和函数调用不可以嵌套
答案:B
第2题 (1.0分) 题号:3067
以下选项中合法的实型常数是().
A:5E2.0
B:E-3
C:.2E0
D:1.3E
答案:C
第3题 (1.0分) 题号:606
已定义ch为字符型变量,以下赋值语句中错误的是()。
A:ch='\';
B:ch=62+3;
C:ch=NULL;
D:ch='\xaa';
答案:A
第4题 (1.0分) 题号:3012
*以下程序段的输出结果为().
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
A:abc
B:ab
C:2
D:3
答案:D
第5题 (1.0分) 题号:110
C语言中,char类型数据占()。
A:1个字节
B:2个字节
C:4个字节
D:8个字节
答案:A
第6题 (1.0分) 题号:547
int (*p)[6]; 它的含义为()。
A:具有6个元素的一维数组
B:定义了一个指向具有6个元素的一维数组的指针变量
C:指向整型指针变量
D:指向6个整数中的一个的地址
答案:B
第7题 (1.0分) 题号:3181
若有定义:int *p[3];,则以下叙述中正确的是().
A:定义了一个基类型为int的指针变量p,该变量具有三个指针
B:定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针
C:定义了一个名为*p的整型数组,该数组含有三个int类型元素
D:定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素
答案:B
第8题 (1.0分) 题号:523
函数的形式参数隐含的存储类型说明是()。
A:extern
B:static
C:register
D:auto
答案:D
第9题 (1.0分) 题号:95
下列变量说明语句中,正确的是()。
A:char:a b c;
B:char a;b;c;
C:int x;z;
D:int x,z;
答案:D
第10题 (1.0分) 题号:168
若输入ab,程序运行结果为()。
main()
{ static char a[2];
scanf("%s",a);
printf("%c,%c",a[1],a[2]);
}
A:a,b
B:a,
C:b,
D:程序出错
答案:C
第11题 (1.0分) 题号:2821
经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在
微机上的值分别为().
char x=65;
float y=7.3;
int a=100;
double b=4.5;
A:2,2,2,4
B:1,2,4,4
C:1,4,4,8
D:2,4,4,8
答案:C
第12题 (1.0分) 题号:611
以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。
A:是无限循环
B:循环次数不定
C:4次
D:3次
答案:C
第13题 (1.0分) 题号:561
以下叙述中正确的是 ()。
A:C程序中注释部分可以出现在程序中任意合适的地方
B:花括号“{“和”}”只能作为函数体的定界符
C:构成C程序的基本单位是函数,所有函数名都可以由用户命名
D:分号是C语句之间的分隔符,不是语句的一部分
答案:A
第14题 (1.0分) 题号:429
假定所有变量均已正确定义,下列程序段运行后x的值是()。
k1=1;
k2=2;
k3=3;
x=15;
if(!k1) x--;
else if(k2) x=4;
else x=3;
A:14
B:4
C:15
D:3
答案:B
第15题 (1.0分) 题号:2782
以下数据中,不正确的数值或字符常量是().
A:8.9e1.2
B:10
C:0xff00
D:82.5
答案:A
第16题 (1.0分) 题号:2374
以下说法正确的是
A:C语言程序总是从第一个的函数开始执行
B:在C语言程序中,要调用函数必须在main()函数中定义
C:C语言程序总是从main()函数开始执行
D:C语言程序中的main()函数必须放在程序的开始部分
答案:C
第17题 (1.0分) 题号:3159
在位运算中,操作数每左移一位,其结果相当于().
A:操作数乘以2
B:操作数除以2
C:操作数除以4
D:操作数乘以4
答案:A
第18题 (1.0分) 题号:599
假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
A:7
B:8
C:6
D:2
答案:B
第19题 (1.0分) 题号:3052
以下叙述正确的是().
A:在C程序中,main函数必须位于程序的最前面
B:C程序的每行中只能写一条语句
C:C语言本身没有输入输出语句
D:在对一个C程序进行编译的过程中,可发现注释中的拼写错误
答案:C
第20题 (1.0分) 题号:3168
若x=2,y=3则x&y的结果是().?
A:0
B:2
C:3
D:5
答案:B
第21题 (1.0分) 题号:3091
以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);().
A:是无限循环
B:循环次数不定
C:4次
D:3次
答案:C
第22题 (1.0分) 题号:160
C语言的if语句嵌套时,if与else的配对关系是()。
A:每个else总是与它上面的最近的if配对
B:每个else总是与最外层的if配对
C:每个else与if的配对是任意的
D:每个else总是与它上面的if配对
答案:A
第23题 (1.0分) 题号:379
以下不正确的叙述是()。
A:在C程序中所用的变量必须先定义后使用
B:程序中,APH和aph是两个不同的变量
C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变
D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
答案:D
第24题 (1.0分) 题号:671
C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是()。
A:地址传递
B:单向值传递
C:由实参传给形参,再由形参传回给实参
D:由用户指定的传递方式
答案:B
第25题 (1.0分) 题号:3073
能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是().
A:a>=10 or a<=0
B:a>=0|a<=10
C:a>=10&&a<=0
D:a>=10‖a<=0
答案:D
第26题 (1.0分) 题号:3100
下列运算符中优先级最高的是().
A:<
B:+
C:&&
D:!=
答案:B
第27题 (1.0分) 题号:130
以下程序段的执行结果是()。
double x;x=218.82631; printf("%-6.2e\n",x);
A:输出格式描述符的域宽不够,不能输出
B:输出为21.38e+01
C:输出为2.2e+02
D:输出为-2.14e2
答案:C
第28题 (1.0分) 题号:480
以下程序的输出结果是()。
main()
{ char s[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
A:123
B:321
C:213
D:312
答案:B
第29题 (1.0分) 题号:376
在C语言中,能代表逻辑值“真”的是()。
A:True
B:大于0的数
C:非0整数
D:非0的数
答案:D
第30题 (1.0分) 题号:2926
在C语言中,if语句后的一对原括号中,用以决定分支的流程的表达式().
A:只能用逻辑表达式
B:只能用关系表达式
C:只能用逻辑表达式或关系表达式
D:可用任意表达式
答案:D
三、程序填空 共2题 (共计24分)
第1题 (12.0分) 题号:3
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:下面的程序是求1!+3!+5!+……+n!的和,程序中有4个
空,填空使程序完整。
-------------------------------------------------------*/
main()
{
long int f,s;
int i,j,n;
/***********SPACE***********/
【?】
scanf("%d",&n);
/***********SPACE***********/
for(i=1;i<=n; 【?】)
{
f=1;
/***********SPACE***********/
for(j=1; 【?】;j++)
/***********SPACE***********/
【?】
s=s+f;
}
printf("n=%d,s=%ld\n",n,s);
}
答案:
=======(答案1)=======
s=0;
=======(答案2)=======
i+=2
=========或=========
i=i+2
=======(答案3)=======
j<=i
=========或=========
i>=j
=======(答案4)=======
f= f * j ;
第2题 (12.0分) 题号:414
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:通过函数的递归调用计算阶乘。
-------------------------------------------------------*/
long power(int n)
{long f;
if(n>1)
/***********SPACE***********/
f=【?】;
else f=1;
return(f);
}
main()
{int n;
long y;
printf("input a inteager number:\n");
/***********SPACE***********/
scanf("%d",【?】);
y=power(n);
/***********SPACE***********/
printf("%d!=%ld\n",n,【?】);
getch();
}
答案:
=======(答案1)=======
power(n-1)*n
=========或=========
power( n - 1 ) * n
=======(答案2)=======
&n
=======(答案3)=======
y
四、程序改错 共2题 (共计22分)
第1题 (11.0分) 题号:417
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:读取7个数(1-50)的整数值,每读取一个值,
程序打印出该值个数的*。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程
序的结构。
------------------------------------------------------*/
#include "stdio.h"
main()
{int i,a,n=1;
/**********FOUND**********/
while(n<7)
{
do
{
scanf("%d",&a);
}
/**********FOUND**********/
while(a<1&&a>50);
/**********FOUND**********/
for(i=0;i<=a;i++)
printf("*");
printf("\n");
n++;}
getch();
}
答案:
=======(答案1)=======
while(n<=7)
=========或=========
while(n<8)
=======(答案2)=======
while(a<1||a>50);
=========或=========
while(a>50||a<1);
=======(答案3)=======
for(i=1;i<=a;i++)
第2题 (11.0分) 题号:19
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
题目:函数fun的功能是:计算正整数num的各位上的数字之积。
例如,输入252,则输出应该是20。
请改正程序中的错误,使它能得出正确的结果。
--------------------------------------------------------
注意:不可以增加或删除程序行,也不可以更改程序的结构。
------------------------------------------------------*/
long fun (long num)
{
/**********FOUND**********/
long k;
do
{
k*=num%10;
/**********FOUND**********/
num\=10;
}while (num);
return k;
}
main()
{
long n;
printf("\nPlease enter a number:");
/**********FOUND**********/
scanf("%ld", n);
/**********FOUND**********/
printf("\n%ld\n",fun(long n));
}
答案:
=======(答案1)=======
long k=1;
=======(答案2)=======
num/=10;
=========或=========
num=num/10;
=======(答案3)=======
scanf("%ld",&n);
=======(答案4)=======
printf("\n%ld\n",fun(n));
五、程序设计 共1题 (共计14分)
第1题 (14.0分) 题号:22
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:从键盘为一维整型数组输入10个整数,调用fun
函数找出其中最小的数,并在main函数中输出。
请编写fun函数。(用for循环)
--------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其
它函数中的任何内容,仅在函数fun的花括号中填
入所编写的若干语句。
------------------------------------------------*/
#include "stdio.h"
int fun(int x[],int n)
{
/**********Program**********/
/********** End **********/
}
main()
{
int a[10],i,min;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
min=fun(a,10);
printf("%d\n",min);
yzj();
}
yzj()
{
FILE *IN,*OUT;
int iIN[10],i;
int iOUT,iCOUNT;
IN=fopen("4.in","r");
if(IN==NULL)
{printf("Please Verify The Currernt Dir..It May Be Changed");
}
OUT=fopen("4.out","w");
if(OUT==NULL)
{printf("Please Verify The Current Dir.. It May Be Changed");
}
for(i=0;i<10;i++)
{ for(iCOUNT=0;iCOUNT<10;iCOUNT++)
fscanf(IN,"%d",&iIN[iCOUNT]);
iOUT=fun(iIN,10);
fprintf(OUT,"%d\n",iOUT);
}
fclose(IN);
fclose(OUT);
}
答案:----------------------
int min,i;
min=x[0];
for(i=1;i<n;i++)
{if(x[i]<min) min=x[i];}
return min;
----------------------
试卷编号:8230
所属语言:C语言
试卷方案:C语言期末模拟
试卷总分:100分
共有题型:5种
一、判断 共10题 (共计10分)
第1题 (1.0分) 题号:1488
函数即可以嵌套定义,又可以嵌套调用.
答案:N
第2题 (1.0分) 题号:1256
unsigned 和void 在C中都是保留字.
答案:Y
第3题 (1.0分) 题号:1280
表达式 ++i表示对变量i自加1.
答案:Y
第4题 (1.0分) 题号:1282
C语言源程序的基本结构单位是main函数.
答案:N
第5题 (1.0分) 题号:1276
字符常量的长度肯定为1.
答案:Y
第6题 (1.0分) 题号:1469
char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样.
答案:Y
第7题 (1.0分) 题号:1249
若有int i=10,j=2; 则执行完i*=j+8;后i的值为28.
答案:N
第8题 (1.0分) 题号:33
int i,*p=&i;是正确的C说明。
答案:Y
第9题 (1.0分) 题号:1250
While循环语句的循环体至少执行一次.
答案:N
第10题 (1.0分) 题号:1510
有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0.
答案:Y
二、单项选择 共30题 (共计30分)
第1题 (1.0分) 题号:456
执行下面程序后,输出结果是()。
main()
{ a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
int max(x,y)
int x,y;
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
A:45
B:27
C:18
D:72
答案:A
第2题 (1.0分) 题号:437
下列数组说明中,正确的是()。
A:int array[][4];
B:int array[][];
C:int array[][][5];
D:int array[3][];
答案:A
第3题 (1.0分) 题号:2396
下面有关for循环的正确描述是 ()
A:for循环只能用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判断表达式
C:在for循环中,不能用break语句跳出循环体
D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:D
第4题 (1.0分) 题号:2817
以下程序的输出结果是().
main()
{int i,j,k,a=3,b=2;
i=(--a==b++)?--a:++b;
j=a++;k=b;
printf("i=%d,j=%d,k=%d\n",i,j,k);
}
A:i=2,j=1,k=3
B:i=1,j=1,k=2
C:i=4,j=2,k=4
D:i=1,j=1,k=3
答案:D
第5题 (1.0分) 题号:2866
若有下列定义,则对a数组元素地址的正确引用是().
int a[5],*p=a;
A:*(p+5)
B:*p+2
C:*(a+2)
D:*&a[5]
答案:C
第6题 (1.0分) 题号:711
下列选项中正确的语句组是()。
A:char s[8]; s={"Beijing"};
B:char *s; s={"Beijing"};
C:char s[8]; s="Beijing";
D:char *s; s="Beijing";
答案:D
第7题 (1.0分) 题号:3191
若变量a,i已正确定义,且i已正确赋值,合法的语句是()
A:a=int(i);
B:a==1
C:++i;
D:a=a++=5;
答案:C
第8题 (1.0分) 题号:490
以下字符中不是转义字符的是()。
A:\a'
B:\b'
C:\c'
D:'\\'
答案:C
第9题 (1.0分) 题号:184
下列定义不正确的是()。
A:#define PI 3.141592
B:#define S345
C:int max(x,y); int x,y; { }
D:static char c;
答案:C
第10题 (1.0分) 题号:3028
char h,*s=&h;可将字符H通过指针存入变量h中的语句是().
A:*s=H;
B:*s='H';
C:s=H;
D:s='H'
答案:B
第11题 (1.0分) 题号:690
设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是()。
A:10101001
B:10101000
C:11111101
D:01010101
答案:D
第12题 (1.0分) 题号:2381
设以下变量均为int类型,表达式的值不为7的是()
A:x=y=6,x+y,x+1
B:x=y=6,x+y,y+1
C:x=6,x+1,y=6,x+y
D:y=6,y+1,x=y,x+1
答案:C
第13题 (1.0分) 题号:3124
若有说明 int a[3][4];则对a数组元素的正确引用是().
A:a[2][4]
B:a[1,3]
C:a[1+1][0]
D:a(2)(1)
答案:C
第14题 (1.0分) 题号:679
在C语言中,形参的缺省存储类是()。
A:auto
B:register
C:static
D:extern
答案:A
第15题 (1.0分) 题号:1343
C语言源程序的基本单位是().
A:过程
B:函数
C:子程序
D:标识符
答案:B
第16题 (1.0分) 题号:3023
C语言程序中必须有的函数是().
A:#include "stdio.h"
B:main
C:printf
D:scanf
答案:B
第17题 (1.0分) 题号:3228
有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为 ()
A:1.4
B:1
C:2.0
D:2
答案:B
第18题 (1.0分) 题号:640
以下对二维数组a的正确说明是()。
A:int a[3][]
B:float a(3,4)
C:double a[1][4]
D:float a(3)(4)
答案:C
第19题 (1.0分) 题号:2884
以下标识符中,不能作为合法的C用户定义标识符的是().
A:answer
B:to
C:signed
D:_if
答案:C
第20题 (1.0分) 题号:652
在C语言中,引用数组元素时,其数组下标的数据类型允许是()。
A:整型常量
B:整型表达式
C:整型常量或整型表达式
D:任何类型的表达式
答案:C
第21题 (1.0分) 题号:381
以下标识符中,不能作为合法的C用户定义标识符的是()。
A:answer
B:to
C:signed
D:_if
答案:C
第22题 (1.0分) 题号:2898
已知year为整型变量,不能使表达式(year%4==0&&year%100!=0)||
year%400==0的值为"真"的数据是().
A:1990
B:1992
C:1996
D:2000
答案:A
第23题 (1.0分) 题号:177
以下描述中,正确的是()。
A:预处理是指完成宏替换和文件包含中指定的文件的调用
B:预处理指令只能位于C源文件的开始
C:C源程序中凡是行首以#标识的控制行都是预处理指令
D:预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
答案:C
第24题 (1.0分) 题号:156
执行下列语句后的输出为()。
int j=-1;
if(j<=1) printf("****\n");
else printf("%%%%\n");
A:****
B:%%%%
C:%%%%c
D:有错,执行不正确
答案:A
第25题 (1.0分) 题号:2850
以下函数调用语句中实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
A:3
B:4
C:5
D:6
答案:A
第26题 (1.0分) 题号:506
以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j<i;j++)
putchar('#');
A:无
B:######
C:#
D:###
答案:B
第27题 (1.0分) 题号:2830
下列程序的输出结果是().
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{
case 1:switch(y)
{
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A:a=1,b=0
B:a=2,b=1
C:a=1,b=1
D:a=2,b=2
答案:B
第28题 (1.0分) 题号:573
C语言中运算对象必须是整型的运算符是()。
A:%=
B:/
C:=
D:〈=
答案:A
第29题 (1.0分) 题号:647
以下能对二维数组a进行正确初始化的语句是()。
A:int a[2][]={{1,0,1},{5,2,3}};
B:int a[][3]={{1,2,3},{4,5,6}};
C:int a[2][4]={{1,2,3},{4,5},{6}};
D:int a[][3]={{1,0,1}{},{1,1}};
答案:B
第30题 (1.0分) 题号:3135
以下数组定义中不正确的是().
A:int a[2][3];
B:int b[][3]={0,1,2,3};
C:int c[100][100]={0};
D:int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
答案:D
三、程序填空 共2题 (共计24分)
第1题 (12.0分) 题号:417
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:利用全局变量计算长方体的体积及三个面的面积。
-------------------------------------------------------*/
int s1,s2,s3;
int vs(int a,int b,int c)
{int v;
/***********SPACE***********/
v=【?】;
s1=a*b;
/***********SPACE***********/
s2=【?】;
s3=a*c;
return v;
}
main()
{int v,l,w,h;
clrscr();
printf("\ninput length,width and height: ");
/***********SPACE***********/
scanf("%d%d%d",【?】,&w,&h);
/***********SPACE***********/
v=【?】;
printf("v=%d s1=%d s2=%d s3=%d\n",v,s1,s2,s3);
getch();
}
答案:
=======(答案1)=======
a*b*c
=========或=========
a * b * c
=
展开阅读全文