C语言试题.docx
《C语言试题.docx》由会员分享,可在线阅读,更多相关《C语言试题.docx(187页珍藏版)》请在冰豆网上搜索。
![C语言试题.docx](https://file1.bdocx.com/fileroot1/2023-7/8/a694cfa7-af77-4b62-9bd7-54a01c6bb712/a694cfa7-af77-4b62-9bd7-54a01c6bb7121.gif)
C语言试题
第一套
一、判断共10题(共计10分)
第1题(1.0分)题号:
1488
函数即可以嵌套定义,又可以嵌套调用.
()
第2题(1.0分)题号:
1256
unsigned和void在C中都是保留字.
()
第3题(1.0分)题号:
1280
表达式++i表示对变量i自加1.
()
第4题(1.0分)题号:
1282
C语言源程序的基本结构单位是main函
数.
()
第5题(1.0分)题号:
1276
字符常量的长度肯定为1.
()
第6题(1.0分)题号:
1469
chara[]={'a','b','c'};charb[]={"abc"};数组a
和数组b占用的内存空间大小不一样.
()
第7题(1.0分)题号:
1249
若有inti=10,j=2;则执行完i*=j+8;后i的
值为28.
()
第8题(1.0分)题号:
33
inti,*p=&i;是正确的C说明。
()
第9题(1.0分)题号:
1250
While循环语句的循环体至少执行一次.
()
第10题(1.0分)题号:
1510
有数组定义inta[2][2]={{1},{2,3}};则a[0][1]
的值为0.
()
二、单项选择共30题(共计30分)
第1题(1.0分)题号:
456
执行下面程序后,输出结果是()。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
A:
45
B:
27
C:
18
D:
72
第2题(1.0分)题号:
437
下列数组说明中,正确的是()。
A:
intarray[][4];
B:
intarray[][];
C:
intarray[][][5];
D:
intarray[3][];
第3题(1.0分)题号:
2396
下面有关for循环的正确描述是()
A:
for循环只能用于循环次数已经确定的
情况
B:
for循环是先执行循环体语句,后判断表
达式
C:
在for循环中,不能用break语句跳出循
环体
D:
for循环的循环体语句中,可以包含多条
语句,但必须用花括号括起来
第4题(1.0分)题号:
2817
以下程序的输出结果是().
main()
{inti,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
第5题(1.0分)题号:
2866
若有下列定义,则对a数组元素地址的正
确引用是().
inta[5],*p=a;
A:
*(p+5)
B:
*p+2
C:
*(a+2)
D:
*&a[5]
第6题(1.0分)题号:
711
下列选项中正确的语句组是()。
A:
chars[8];s={"Beijing"};
B:
char*s;s={"Beijing"};
C:
chars[8];s="Beijing";
D:
char*s;s="Beijing";
第7题(1.0分)题号:
3191
若变量a,i已正确定义,且i已正确赋值,合
法的语句是()
A:
a=int(i);
B:
a==1
C:
++i;
D:
a=a++=5;
第8题(1.0分)题号:
490
以下字符中不是转义字符的是()。
A:
\a'
B:
\b'
C:
\c'
D:
'\\'
第9题(1.0分)题号:
184
下列定义不正确的是()。
A:
#definePI3.141592
B:
#defineS345
C:
intmax(x,y);intx,y;{}
D:
staticcharc;
第10题(1.0分)题号:
3028
charh,*s=&h;可将字符H通过指针存入变
量h中的语句是().
A:
*s=H;
B:
*s='H';
C:
s=H;
D:
s='H'
第11题(1.0分)题号:
690
设char型变量x中的值为10100111,则
表达式(2+x)^(~3)的值是()。
A:
10101001
B:
10101000
C:
11111101
D:
01010101
第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
第13题(1.0分)题号:
3124
若有说明inta[3][4];则对a数组元素的正
确引用是().
A:
a[2][4]
B:
a[1,3]
C:
a[1+1][0]
D:
a
(2)
(1)
第14题(1.0分)题号:
679
在C语言中,形参的缺省存储类是()。
A:
auto
B:
register
C:
static
D:
extern
第15题(1.0分)题号:
1343
C语言源程序的基本单位是().
A:
过程
B:
函数
C:
子程序
D:
标识符
第16题(1.0分)题号:
3023
C语言程序中必须有的函数是().
A:
#include"stdio.h"
B:
main
C:
printf
D:
scanf
第17题(1.0分)题号:
3228
有定义:
inta=8,b=5,c;,执行语句
c=a/b+0.4;后,c的值为()
A:
1.4
B:
1
C:
2.0
D:
2
第18题(1.0分)题号:
640
以下对二维数组a的正确说明是()。
A:
inta[3][]
B:
floata(3,4)
C:
doublea[1][4]
D:
floata(3)(4)
第19题(1.0分)题号:
2884
以下标识符中,不能作为合法的C用户定
义标识符的是().
A:
answerB:
to
C:
signed
D:
_if
第20题(1.0分)题号:
652
在C语言中,引用数组元素时,其数组下
标的数据类型允许是()。
A:
整型常量
B:
整型表达式
C:
整型常量或整型表达式
D:
任何类型的表达式
第21题(1.0分)题号:
381
以下标识符中,不能作为合法的C用户定
义标识符的是()。
A:
answer
B:
to
C:
signed
D:
_if
第22题(1.0分)题号:
2898
已知year为整型变量,不能使表达式
(year%4==0&&year%100!
=0)||
year%400==0的值为"真"的数据是().
A:
1990
B:
1992
C:
1996
D:
2000
第23题(1.0分)题号:
177
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指
定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行
都是预处理指令
D:
预处理就是完成C编译程序对C源程序
第一遍扫描,为编译词法和语法分析作准
备
第24题(1.0分)题号:
156
执行下列语句后的输出为()。
intj=-1;
if(j<=1)printf("****\n");
elseprintf("%%%%\n");
A:
****
B:
%%%%
C:
%%%%c
D:
有错,执行不正确
第25题(1.0分)题号:
2850
以下函数调用语句中实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
A:
3
B:
4
C:
5
D:
6
第26题(1.0分)题号:
506
以下程序段的输出结果为()。
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
A:
无
B:
######
C:
#
D:
###
第27题(1.0分)题号:
2830
下列程序的输出结果是().
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case
0:
a++;break;
case
1:
b++;break;
}
case2:
a++;b++;break;
case3:
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
第28题(1.0分)题号:
573
C语言中运算对象必须是整型的运算符是
()。
A:
%=
B:
/
C:
=
D:
〈=
第29题(1.0分)题号:
647
以下能对二维数组a进行正确初始化的语
句是()。
A:
inta[2][]={{1,0,1},{5,2,3}};
B:
inta[][3]={{1,2,3},{4,5,6}};
C:
inta[2][4]={{1,2,3},{4,5},{6}};
D:
inta[][3]={{1,0,1}{},{1,1}};
第30题(1.0分)题号:
3135
以下数组定义中不正确的是().
A:
inta[2][3];
B:
intb[][3]={0,1,2,3};
C:
intc[100][100]={0};
D:
intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
三、程序填空共2题(共计24分)
第1题(12.0分)题号:
417
/*----------------------------------------------------
---
【程序填空】
------------------------------------------------------
---
题目:
利用全局变量计算长方体的体积及
三个面的面积。
------------------------------------------------------
-*/
ints1,s2,s3;
intvs(inta,intb,intc)
{intv;
/***********SPACE***********/
v=【?
】;
s1=a*b;
/***********SPACE***********/
s2=【?
】;
s3=a*c;
returnv;
}
main()
{intv,l,w,h;
clrscr();
printf("\ninputlength,widthand
height:
");
/***********SPACE***********/
scanf("%d%d%d",【?
】,&w,&h);
/***********SPACE***********/
v=【?
】;
printf("v=%ds1=%ds2=%d
s3=%d\n",v,s1,s2,s3);
getch();
}
第2题(12.0分)题号:
441
/*----------------------------------------------------
---
【程序填空】
------------------------------------------------------
---
题目:
给定程序中函数fun的功能是:
从
低位开始取出长
整型变量s中奇数位上的数,依次
构成一个新数放在t中。
------------------------------------------------------
-*/
#include
#include
voidfun(longs,long*t)
{longsl=10;
s/=10;
/***********SPACE***********/
*t=s【?
】10;
while(s>0)
/***********SPACE***********/
{s=【?
】;
/***********SPACE***********/
*t=s%10*sl【?
】;
/***********SPACE***********/
sl=sl【?
】10;
}
}
main()
{longs,t;
clrscr();
printf("\nPleaseenters:
");scanf("%ld",
&s);
fun(s,&t);
printf("Theresultis:
%ld\n",t);
}
四、程序改错共2题(共计22分)
第1题(11.0分)题号:
383
/*----------------------------------------------------
--
【程序改错】
------------------------------------------------------
--
题目:
给定程序的功能是:
读入一行英文
文本,
将其中每个单词的最后一个字母改
成大写,然后
输出此文本行(这里的“单词”是指
由空格隔开的
字符串)。
例如,若输入Iama
studenttotake
theexamination.,则应输出"IaMA
studenTtO
takEthEexamination."。
------------------------------------------------------
--
注意:
不可以增加或删除程序行,也不可
以更改程序的结构。
------------------------------------------------------
*/
#include"conio.h"
#include"stdio.h"
#include"ctype.h"
#include"string.h"
up1st(char*p)
{
/**********FOUND**********/
integerk=0;
for(;*p;p++)
if(k)
/**********FOUND**********/
{if(*p='')
{k=0;
/**********FOUND**********/
*(p-1)=toupper(*(p-1);
}
}
elseif(*p!
='')k=1;
*(p-1)=toupper(*(p-1));
}
main()
{charchrstr[81];
printf("\nPleaseenterastring:
");gets
(chrstr);
printf("\n\nBeforechanging:
\n%s",
chrstr);
up1st(chrstr);
printf("\nAfterchanging:
\n%s",chrstr);
}
第2题(11.0分)题号:
431
/*----------------------------------------------------
--
【程序改错】
------------------------------------------------------
--
题目:
编写函数fun求1000以内所有8的
倍数之和。
------------------------------------------------------
--
注意:
不可以增加或删除程序行,也不可
以更改程
序的结构。
------------------------------------------------------
*/
#include"stdio.h"
#defineN1000
main()
{intsum;
sum=fun(8);
printf("%d以内所有%d的倍数之和
为:
%d\n",N,8,sum);
getch();
}
intfun(intm)
{
/**********FOUND**********/
ints=0;i;
/**********FOUND**********/
for(i=1;i>N;i++)
/**********FOUND**********/
if(i/m==0)
s+=i;
returns;}
五、程序设计共1题(共计14分)
第1题(14.0分)题号:
390
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
求一批数中最大值和最小值的差。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主
函数
main和其它函数中的任何内容,仅
在函
数的花括号中填入所编写的若干语
句。
------------------------------------------------*/
intmax_min(inta[],intn)
{
/**********Program**********/
/**********End**********/
}
#defineN30
#include"stdlib.h"
#include"stdio.h"
main()
{
inta[N],i,k;
clrscr();
for(i=0;ia[i]=random(51)+10;
for(i=0;i{printf("%5d",a[i]);
if((i+1)%5==0)printf("\n");
}
k=max_min(a,N);
printf("theresultis:
%d\n",k);
yzj();
getch();
}
yzj()
{
FILE*IN,*OUT;
intn;
inti[30];
into;
IN=fopen("in.dat","r");
if(IN==NULL)
{printf("ReadFileError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{printf("WriteFileError");
}
for(n=0;n<5;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=max_min(i,5);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
第二套
一、判断共10题(共计10分)
第1题(1.0分)题号:
34
7&3+12的值是15。
()
第2题(1.0分)题号:
1468
在C语言中,整型数据在内存中占2个字
节.
()
第3题(1.0分)题号:
19
C语言本身不提供输入输出语句,输入和
输出操作是由函数来
实现的。
()
第4题(1.0分)题号:
1512
将一个字符串"abc"赋给字符串变量str的
方法是str="abc".
()
第5题(1.0分)题号:
1501
以数组名作函数参数时,实参数组与形参
数组都不必定义长度,因此实参与形参的
结合方式是地址结合,与数组长度无关.
()
第6题(1.0分)题号:
18
a=(b=4)+(c=6)是一个合法的赋值表达
式。
()
第7题(1.0分)题号:
1262
C语言规定:
在一个源程序中,main函数的
位置必须在最开始.
()第8题(1.0分)题号:
1479
C程序中的一个变量可以被定义为两个或
多个不同的类型.
()
第9题(1.0分)题号:
23
若a=3,b=2,c=1则关系表达式
"(a>b)==c"的值为"真"。
()
第10题(1.0分)题号:
1502
对二维数组a来说,由于a+1与*(a+1)的值
相等,因此二者的含义是一样的.
()
二、单项选择共30题(共计30分)
第1题(1.0分)题号:
177
以下描述中,正确的是()。
A:
预处理是指完成宏替换和文件包含中指
定的文件的调用
B:
预处理指令只能位于C源文件的开始
C:
C源程序中凡是行首以#标识的控制行
都是预处理指令
D:
预处理就是完成C编译程序对C源程序
第一遍扫描,为编译词法和语法分析作准
备
第2题(1.0分)题号:
2789
设C语言中,int类型数据占4个字节,则
short类型数据占().
A:
1个字节