C语言程序设计试题汇编abc.docx
《C语言程序设计试题汇编abc.docx》由会员分享,可在线阅读,更多相关《C语言程序设计试题汇编abc.docx(23页珍藏版)》请在冰豆网上搜索。
C语言程序设计试题汇编abc
《C语言程序设计》模拟卷
题号
一
二
三
四
总分
得分
评卷人
一、选择题:
1.一个C语言的源程序中______。
A)必须有一个主函数B)可以有多个主函数
C)必须有主函数和其他函数D)可以没有主函数
2.执行以下语句的结果为______。
y=10;x=y++;
A)x=10,y=10B)x=11,y=11
C)x=10,y=11D)x=11,y=10
3.执行以下程序段后,c3的值是______。
intc1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
4.C语言中字符型(char)数据在内存中的形式存储是______。
A)原码 B)补码 C)反码 D)ASCII码
5.下列常数中不能作为C的常量的是______。
A)0xA5 B)2.5e-2 C)3e2 D)2e32.6
6.C语言中整数-8在内存中的存储形式是______。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
7.已知inti,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。
A)6 B)12 C)30 D)36
8.执行以下程序段后,a,b,c的值分别是______。
inta,b=100,c,x=10,y=9;
a=(--x==y++)?
--x:
++y;
if(x<9)b=x++;c=y;
A)9,9,9 B)8,8,10 C)9,10,9 D)1,11,10
9.一个C语言程序的基本组成单位是______。
A)主程序 B)子程序 C)函数 D)过程
10.已知函数abc的定义为:
voidabc()
{.......}
则函数定义中void的含义是_____。
A)执行函数abc后,函数没有返回值
B)执行函数abc后,函数不再返回
C)执行函数abc后,可以返回任意类型
D)以上三个答案全是错误的
11.以下程序的输出结果是____。
main()
{inti,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)1,5,9, B)1,4,7, C)3,5,7, D)3,6,9,
12.已知:
double*p[6];它的含义是_____。
A)p是指向double型变量的指针B)p是double型数组
C)p是指针数组D)p是数组指针
13.已知:
int*p,a;则语句"p=&a;"中的运算符"&"的含义是_____。
A)位与运算B)逻辑与运算C)取指针内容D)取变量地址
14.变量的指针,其含义是指该变量的()
A)值B)地址C)名D)一个标志
15.下面程序段的运行结果是:
()
charc[]=”\t\v\\\0will\n”
printf(“%d”,strlen(c));
A)14B)3C)9D)字符串中有非法字符,输出值不确定
二、填空题:
1.表达式10+16%3的值为___________。
2.写出满足下列条件的表达式:
a和b都不小于c______________________。
3.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。
4.下面函数的功能是求整数1到n的和请把程序补充完整。
longsum(intn)
{inti;
__________
for(i=1;i<=n;i++)
_______________
returns;
}
三、程序阅读题,写出程序的输出结果:
1.#include“stdio.h”
main()
{inti,j;
i=j=2;
if(i==1)
if(i==2)
printf(“%d”,i=i+j);
else
printf(“%d”,i=i-j);
printf(“%d”,i);
}
___________________________________。
2.main()
{inti=3
while(i<10))
{if(i<6)
{i+=2;
continue;
}
else
printf(“%d”,++i);
}
}
___________________________________。
3.#include“stdio.h”
#defineX5
#defineYX+1
#defineZY*X/2
main()
{inta;
a=Y;
printf(“%d%d\n”,Z,--a);
}
___________________________________。
四、编程题:
(共45分)
1.编程求分段函数y=f(x)的值,f(x)的表达式如下:
2x+3x<-1
f(x)=5x+10-1≤x≤1
12xx>1
2.用switch语句编写程序,实现以下功能:
从键盘输入数字1、2、3、4。
分别显示excellent,good,pass,fail.输入其它键时显示error。
3.编写一函数,找出一整数的全部因子。
参考答案:
1、
#include"math.h"
main()
{floatx,y;
printf("inputx\n");
scanf("%f",&x);
if(x<-1)y=2*x+3;
elseif(x>=-1&&x<=1)y=5*x+10;
elsey=12*x;
printf("x=%f,y=%f",x,y);
}
2、
main()
{intx;
printf("pleaseinputanumber\n");
scanf("%d",&x);
switch(x)
{case1:
printf("excellent\n");break;
case2:
printf("good\n");break;
case3:
printf("pass\n");break;
case4:
printf("fail\n");break;
default:
printf("error\n");
}
}
3、
voidyz(intn)
{inti;
for(i=1;i<=n;i++)
If(n%i==0)printf("%5d",i);
return;
}
《C语言程序设计》模拟卷
题号
一
二
三
四
总分
得分
评卷人
一、选择题:
1.一个C语言程序的基本组成单位是______。
A)主程序 B)子程序 C)函数 D)过程
2.C语言中字符型(char)数据在内存中的形式存储是______。
A)原码 B)补码 C)反码 D)ASCII码
3.执行以下程序段后,c3的值是______。
intc1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
4.执行以下语句的结果为______。
y=10;x=y++;
A)x=10,y=10B)x=11,y=11
C)x=10,y=11D)x=11,y=10
5.下列常数中不能作为C的常量的是______。
A)0xA5 B)2.5e-2 C)3e2 D)2e32.6
6.C语言中整数-8在内存中的存储形式是______。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
7.已知inti,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。
A)6 B)12 C)30 D)36
8.执行以下程序段后,a,b,c的值分别是______。
inta,b=100,c,x=10,y=9;
a=(--x==y++)?
--x:
++y;
if(x<9)b=x++;c=y;
A)9,9,9 B)8,8,10 C)9,10,9 D)1,11,10
9.下列程序段______。
x=3;
do
{y=x--;
if(!
y){printf("x");
continue;
}
printf("#");
}while(1<=x&&x<=2);
A)输出### B)输出##x C)是死循环 D)有语法错
10.一个C语言的源程序中______。
A)必须有一个主函数B)可以有多个主函数
C)必须有主函数和其他函数D)可以没有主函数
11.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是_____。
A)地址传递B)值传递
C)由实参传给形参,并由形参传回来给实参D)由用户指定传递方式
12.以下程序的输出结果是____。
main()
{inti,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)1,5,9, B)1,4,7, C)3,5,7, D)3,6,9,
13.已知:
int*p,a;则语句"p=&a;"中的运算符"&"的含义是_____。
A)位与运算B)逻辑与运算C)取指针内容D)取变量地址
14.说明语句"int(*p)();"的含义是_____。
A)p是一个指向一维数组的指针变量
B)p是指针变量,指向一个整型数据
C)p是一个指向函数的指针,该函数的返回值是一个整型
D)以上都不对
15.变量的指针,其含义是指该变量的()
A)值B)地址C)名D)一个标志
二、填空题:
1.表达式10+16%3的值为___________。
2.写出满足下列条件的表达式:
a和b都不小于c_____________________。
3.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。
4.下面函数的功能是求1到n的和请把程序补充完整。
longsum(intn)
{inti;
__________
for(i=1;i<=n;i++)
_______________
returns;
}
三、程序阅读题,写出程序的输出结果:
1.#include“stdio.h”
main()
{inti,j;
i=j=2;
if(i==1)
if(i==2)
printf(“%d”,i=i+j);
else
printf(“%d”,i=i-j);
printf(“%d”,i);
}
___________________________________。
2.main()
{inti=3
while(i<10))
{if(i<6)
{i+=2;
continue;
}
else
printf(“%d”,++i);
}
}
___________________________________。
3.#include“stdio.h”
#defineX5
#defineYX+1
#defineZY*X/2
main()
{inta;
a=Y;
printf(“%d%d\n”,Z,--a);
}
___________________________________。
四、编程题:
1.计算正整数1到n中的奇数之和及偶数之和。
2.用switch语句编写程序,实现以下功能:
从键盘输入数字1、2、3、4。
分别显示excellent,good,pass,fail.输入其它键时显示error。
3.编程求一个3×3矩阵对角线元素之和。
参考答案:
1、
main()
{intn,i;
longs1,s2;
printf("pleaseinputn\n");
scanf("%d",&n);
for(i=1,s1=0,s2=0;i<=n;i++)
if(i%2==0)s1=s1+i;
elses2=s2+i;
printf("oushuheshi%ld\n",s1);
printf("jishuheshi%ld\n",s2);
}
2、(总分8分))
main()
{intx;
printf("pleaseinputanumber\n");
scanf("%d",&x);
switch(x)
{case1:
printf("excellent\n");break;
case2:
printf("good\n");break;
case3:
printf("pass\n");break;
case4:
printf("fail\n");break;
default:
printf("error\n");
}
}
3、(总分8分)
main()
{inta[3][3];
inti,j;
longs;
printf("pleaseinput9number\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)scanf("%d",&a[i][j]);
printf("thearrayais\n");
for(i=0,s=0;i<3;i++)
{for(j=0;j<3;j++)
{printf("%4d",a[i][j]);if(i==j||i+j==2)s=s+a[i][j];
}
printf("\n");
}printf("s=%3d",s);
}
《C语言程序设计》模拟卷
题号
一
二
三
四
总分
得分
评卷人
一、选择题
1.以下说法中正确的是()。
A.C语言程序总是从第一个函数开始执行
B.C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
2.下列为字符常量的是()。
A.“a”B.‘ab’C.‘\n’D.‘\084’
3.在C语言中,下面字符串能用作变量名的是()。
A.a+bB.autoC.2-andD.a2
4.在C语言中运算对象必须是整型的运算符是()。
A.%B./C.==D.<=
5.若有以下定义:
intx=10,y=3,z;则语句:
printf(“%d\n”,z=(x%y,x/y));的输出结果为()。
A.1B.0C.2D.3
6.表达式()的值是整数类型。
A.15/2B.15/2+2.0C.25/5.0D.0.5*10
7.若doublex=2,y;则执行y=x+3/2;后,y的值是()。
A.3.500000B.3.000000C.2.000000D.3
8.C语言程序的基本单位是()。
A.程序行B.语句C.函数D.字符
9.设int类型的数据长度为2字节,则int类型数据的取值范围是()。
A.0~255B.-32768~32767C.-256~255D.0~65535
10.语句int(*p)()的含义是()。
A.p是一个指向一维数组的指针变量
B.p是指针变量,它指向一个整型数据的指针
C.p是一个指向函数的指针,该函数的返回值为整型
D.以上答案都不对
11.下面程序的输出结果是()。
main()
{intx=10,y=10;
printf(“%d,%d\n”,x--,y--);
}
A.10,10B.9,9C.9,10D.10,9
12.()是C语言的标准函数名。
A.scanfB.caseC.whileD.int
13.下面程序的输出结果是()。
voidmain()
{inti=10;
switch(i)
{
case9:
i+=1;
case10:
i+=1;
case11:
i+=1;
case12:
i+=1;
}
printf(“i=%d\n”,i);
}
A.10B.11C.12D.13
14.以下定义语句中,错误的是()。
A.inta[]={1,2}B.inta[][3]={1,2,3,4,5};
C.chars[10]=“test”;D.intn=5,a[n];
15.在一个源文件中定义的全局变量的作用域为()。
A.本文件的全部范围B.从定义该变量开始至本文件结束
C.本函数的全部范围D.本程序的全部范围
16.int型变量在内存中占2个字节,若inta[10]={0,2,4};则数组a所占字节数是()。
A.3B.10C.20D.6
17.有以下程序
#include
#include
main()
{
chara[7]="China";
inti,j;
i=sizeof(a);
j=strlen(a);
printf("%d%d\n",i,j);
}
程序运行后的输出结果是()。
A.55B.76
C.75D.66
18.下面程序运行时,如果从键盘上输入5,则输出的结果是()。
voidmain()
{intx;
scanf(“%d”,&x);
if(x--<5)printf(“%d\n”,x);
elseprintf(“%d\n”,x++);
}
A.3B.4C.5D.6
19.若有以下说明和语句,且已知char型占1个字节,int型占两个字节,float型占4个字节。
structst
{intnum;
charname[10];
intage;
floatscore;
}student;
则结构体变量student占用内存的字节数是()。
A.10B.18C.9D.2
20.以下程序的输出结果是()。
voidmain()
{chars[]="ABCD";
int*p;
for(p=s;p
printf("%s\n",p);
}
A.ABCDB.A
ABCB
ABC
AD
C.DD.ABCD
CBCD
BCD
AD
二、填空题
1.若有定义inta[2][5],则整型数组a包含有个元素。
2.数学表达式x3+y3在C语言中应表示为。
3.若有数据3.5需要存储到变量x中,则变量x定义应写为。
4.有如下程序段
int*p,a=10,b=1;p=&a;a=*p+b;
执行该程序段后,a的值为。
5.表达式“0≤a≤10”在C语言中应表示为。
6.若有定义floatx,y;则从键盘给x、y输入数据的语句应写为
。
7.有以下程序
#defineSQR(x)(x)*(x)
main()
{inta,k=3;
a=SQR(k+1);
printf(“%d\n”,a);
}
程序运行后的输出结果为。
8.以下程序的输出结果为。
voidmain()
{inti,j,a[]={1,2,3,4,5,6,7,8,9,10};
intsum=0;
for(i=0;i<10;i++)
sum=sum+a[i];
printf("%4d",sum);
}
9.以下程序的输出结果为。
#include
#include
voidmain()
{charstr1[20]=”Computer”,str2[]=”Language”;
strcat(str1,str2);
printf(“%s\n”,str1);
}
10.以下程序的输出结果为。
main()
{inta[]={1,2,3,4,5,6},*p;
p=a;
*(p+3)+=2;
printf(“%d,%d\n”,*p,*(p+3));
}
三、判断题(对的填√,错的填×)
1.C语言源程序文件的扩展名均为.c。
2.C语言中的基本数据类型有整型、字符型和实型。
3.C语言中不同的函数中不可以使用相同名字的变量。
4.C语言程序区分字母大小写,符号常量必须定义为大写。
5.若intx=100,y=200,则语句printf(“%d”,(x,y))的输出结果是100。
6.C语言的源程序经过编译、连接后才能运行。
7.若inta[2][2]={{1},{2,3}};则a[0][1]的值为0。
8.C语言的数组名是一个地址常量,不能对它进行加、减和赋值运算。
9.若x为某函数f之内说明的变量,则当函数f执行完后,x值无定义。
10.若inti=10,j=2;则执行i*=j+8;后i的值为28。
四、编程题
1.输入圆的半径,计算并输出圆的周长、面积及球的体积(结果保留两位小数)。
2.有一个函数:
y=
编程输入x的值,求y的值。
3.Fibonacci数列为1、1、2、3、5、8、13、……,编程输出该数列的前20项。
4.编程输出所有的水仙花数。
水仙花数是一个3位数,其各位数字立方和等于该数本身。
如:
153=13+53+33,故153是水仙花数。
5.编程从输入的10个数中,去掉一个最大数和一个最小数,求剩余数的平均