【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《C语言程序设计试题汇编abc》,欢迎阅读!
《C语言程序设计》模拟卷
题号 一 二 三 四 总分 得分 评卷人
一、选择题:
1.一个C语言的源程序中______。
A)必须有一个主函数 B)可以有多个主函数 C)必须有主函数和其他函数 D)可以没有主函数 2.执行以下语句的结果为______。 y=10; x=y++;
A)x=10, y=10 B)x=11, y=11 C)x=10, y=11 D)x=11, y=10 3.执行以下程序段后,c3的值是______。 int c1=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) 1111 1111 1111 1000 B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
7.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。
A)6 B)12 C)30 D)36 8.执行以下程序段后,a,b,c的值分别是______。 int a,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的定义为: void abc ( ) { ....... }
则函数定义中void的含义是_____。 A)执行函数abc后,函数没有返回值
B)执行函数abc后,函数不再返回
C)执行函数abc后,可以返回任意类型
D)以上三个答案全是错误的 11.以下程序的输出结果是____。 main()
{ int i,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.下面程序段的运行结果是:( ) char c[ ]=”\t\v\\\0will\n” printf(“%d”,strlen(c));
1
A)14 B)3 C)9 D)字符串中有非法字符,输出值不确定
二、填空题:
1.表达式10+16%3的值为___________。
2.写出满足下列条件的表达式:a和b都不小于c______________________。
3.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。 4.下面函数的功能是求整数1到n的和请把程序补充完整。 long sum( int n) { int i; __________
for(i=1;i<=n;i++) _______________ return s; }
三、程序阅读题,写出程序的输出结果:
1.#include “stdio.h” main() {int i, 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() {int i=3
while(i<10)) {if(i<6) {i+=2; continue; } else
printf(“%d ”,++i); } }
___________________________________。 3.#include “stdio.h” #define X 5 #define Y X+1 #define Z Y*X/2 main( ) {int a; a=Y;
printf(“%d %d\n”,Z,--a); }
___________________________________。
四、编程题:(共45分)
1.编程求分段函数y=f(x)的值,f(x)的表达式如下:
2
2x+3 x<-1
f(x)= 5x+10 -1≤x≤1
12x x>1
2.用switch语句编写程序,实现以下功能:从键盘输入数字1、2、3、4。分别显示excellent,good,pass,fail.输入其它键时显示error。
3.编写一函数,找出一整数的全部因子。
参考答案: 1、
#include "math.h" main( ) {float x,y;
printf("input x\n"); scanf("%f",&x); if(x<-1) y=2*x+3;
else if(x>=-1&&x<=1) y=5*x+10; else y=12*x;
printf("x=%f,y=%f",x,y); } 2、
main() { int x;
printf("please input a number\n"); scanf("%d",&x); switch (x)
{ case 1: printf("excellent\n");break; case 2: printf("good\n");break; case 3: printf("pass\n");break; case 4: printf("fail\n");break; default : printf("error\n"); } } 3、
void yz(int n) { int i;
for(i=1;i<=n;i++)
I f(n%i==0) printf("%5d",i); return ; }
《C
语言程序设计》模拟卷
题号 一 二 三 四 总分 得分 评卷人
一、选择题:
1.一个C语言程序的基本组成单位是______。
A)主程序 B)子程序 C)函数 D)过程
2.C语言中字符型(char)数据在内存中的形式存储是______。
A) 原码 B) 补码 C)反码 D) ASCII码 3.执行以下程序段后,c3的值是______。 int c1=1,c2=2,c3; c3=c1/c2;
3
A) 0 B) 1/2 C) 0.5 D) 1 4.执行以下语句的结果为______。 y=10; x=y++;
A)x=10, y=10 B)x=11, y=11 C)x=10, y=11 D)x=11, y=10 5.下列常数中不能作为C的常量的是______。
A) 0xA5 B) 2.5e-2 C) 3e2 D) 2e32.6 6.C语言中整数-8在内存中的存储形式是______。
A) 1111 1111 1111 1000 B) 1000 0000 0000 1000
C) 0000 0000 0000 1000 D) 1111 1111 1111 0111
7.已知 int i,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是______。
A)6 B)12 C)30 D)36 8.执行以下程序段后,a,b,c的值分别是______。 int a,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()
{ int i,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.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为_____。4.下面函数的功能是求1到n的和请把程序补充完整。 long sum( int n) { int i; __________
for(i=1;i<=n;i++)
4
_______________ return s; }
三、程序阅读题,写出程序的输出结果:
1.#include “stdio.h” main() {int i, 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() {int i=3
while(i<10)) {if(i<6) {i+=2; continue; } else
printf(“%d”,++i); } }
___________________________________。 3.#include “stdio.h” #define X 5 #define Y X+1 #define Z Y*X/2 main( ) {int a; 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() { int n,i; long s1,s2;
printf("please input n\n"); scanf("%d",&n);
for(i=1,s1=0,s2=0;i<=n;i++) if(i%2==0) s1=s1+i; else s2=s2+i;
5
printf("oushu he shi %ld\n",s1); printf("jishu he shi %ld\n",s2); } 2、(总分8分))
main() { int x;
printf("please input a number\n"); scanf("%d",&x); switch (x)
{ case 1: printf("excellent\n");break; case 2: printf("good\n");break; case 3: printf("pass\n");break; case 4: printf("fail\n");break; default : printf("error\n"); } } 3、(总分8分)
main()
{int a[3][3]; int i,j; long s;
printf("please input 9 number\n"); for(i=0;i<3;i++)
for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("the array a is \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+b B. auto C. 2-and D. a2 4.在C语言中运算对象必须是整型的运算符是( )。
A. % B. / C. = = D. <=
5.若有以下定义:int x=10,y=3,z; 则语句:printf(“%d\n”,z=(x%y,x/y));的输出结果为 ( )。
A. 1 B. 0 C. 2 D. 3 6.表达式( )的值是整数类型。
A. 15/2 B. 15/2+2.0 C. 25/5.0 D. 0.5*10 7.若double x=2,y;则执行y=x+3/2;后,y的值是( )。
6
A. 3.500000 B. 3.000000 C. 2.000000 D. 3 8.C语言程序的基本单位是( )。
A. 程序行 B. 语句 C. 函数 D. 字符
9.设int类型的数据长度为2字节,则int类型数据的取值范围是( )。
A. 0~255 B. -32768~32767 C. -256~255 D. 0~65535 10.语句int (*p)( )的含义是( )。
A. p是一个指向一维数组的指针变量
B. p是指针变量,它指向一个整型数据的指针
C. p是一个指向函数的指针,该函数的返回值为整型 D. 以上答案都不对
11.下面程序的输出结果是( )。
main()
{ int x =10,y =10; printf(“%d,%d\n”,x--,y--); }
A. 10,10 B. 9,9 C. 9,10 D. 10,9 12.( )是C语言的标准函数名。
A. scanf B. case C. while D. int 13.下面程序的输出结果是( )。
void main() { int i=10; switch(i) {
case 9:i+=1; case 10:i+=1; case 11:i+=1; case 12:i+=1; }
printf(“i=%d\n”,i); }
A. 10 B. 11 C. 12 D. 13 14.以下定义语句中,错误的是( )。
A. int a[ ]={1,2} B. int a[ ][3]={1,2,3,4,5}; C. char s[10]=“test”; D. int n=5,a[n]; 15.在一个源文件中定义的全局变量的作用域为( )。
A. 本文件的全部范围 B. 从定义该变量开始至本文件结束 C. 本函数的全部范围 D. 本程序的全部范围
16.int型变量在内存中占2个字节,若int a[10]={0,2,4};则数组a所占字节数是(A.3 B.10 C.20 D.6 17.有以下程序
#include #include main() {
char a[7]="China"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d\n",i,j); }
程序运行后的输出结果是( )。 A. 5 5 B. 7 6 C. 7 5 D. 6 6
18.下面程序运行时,如果从键盘上输入5,则输出的结果是( )。
void main( ) { int x;
scanf(“%d”,&x);
if (x - - < 5) printf(“%d\n”,x); else printf(“%d\n”,x + +);
。7
)
}
A. 3 B. 4 C. 5 D. 6
19.若有以下说明和语句,且已知char型占1个字节,int型占两个字节,float 型占4个字节。 struct st
{int num; char name[10]; int age; float score; }student;
则结构体变量student占用内存的字节数是( )。 A. 10 B. 18 C. 9 D. 2 20.以下程序的输出结果是( )。
void main()
{ char s[ ]="ABCD"; int *p;
for (p=s;p;p++) printf("%s\n",p); }
A.ABCD B. A ABC B AB C A D
C. D D. ABCD
C BCD
B CD A D
二、填空题
1.若有定义int a[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.若有定义float x,y;则从键盘给x、y输入数据的语句应写为 。 7.有以下程序
#define SQR(x) (x)*(x) main()
{int a,k=3; a=SQR(k+1);
printf(“%d\n”,a); }
程序运行后的输出结果为 。 8.以下程序的输出结果为 。 void main( )
{ int i,j,a[ ]={1,2,3,4,5,6,7,8,9,10}; int sum=0;
for (i=0;i<10;i++) printf("%4d",sum); sum=sum+a[i]; }
9.以下程序的输出结果为 。 #include #include void main( )
{char str1[20]= strcat(str1,str2);
”Computer”,str2[ ]=”Language”; printf(“%s\n”,str1);
8
}
10.以下程序的输出结果为 。 main( )
{int a[ ]={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.若int x=100,y=200,则语句printf(“%d”,(x,y))的输出结果是100。 6.C语言的源程序经过编译、连接后才能运行。
7.若int a[2][2]={{1},{2,3}};则a[0][1]的值为0。
8.C语言的数组名是一个地址常量,不能对它进行加、减和赋值运算。 9.若x为某函数f之内说明的变量,则当函数f执行完后,x值无定义。 10.若int i=10,j=2;则执行i*=j+8;后i的值为28。
四、编程题
1.输入圆的半径,计算并输出圆的周长、面积及球的体积(结果保留两位小数)。 2.有一个函数:
x1x
y=2x1 1x10 3x11x10
编程输入x的值,求y的值。
3.Fibonacci数列为1、1、2、3、5、8、13、„„,编程输出该数列的前20项。
4.编程输出所有的水仙花数。水仙花数是一个3位数,其各位数字立方和等于该数本身。如:153=13+53+33,故153是水仙花数。
5.编程从输入的10个数中,去掉一个最大数和一个最小数,求剩余数的平均值。 参考答案:
第1题:程序代码
#define PI 3.1415926 main( ) {
float r,c,s,v;
printf("Please enter r:");
scanf("%f",&r); c=2*PI*r; s=PI*r*r;
v=4/3.0*PI*r*r*r; printf("c=%6.2f\n",c); printf("s=%6.2f\n",s); printf("v=%6.2f\n",v); getch();
}
第2题:程序代码 main() {float x,y;
printf("Please enter x:");
scanf("%f",&x); if(x<1)
9
y=x;
if(x>=1 &&x<10) y=2*x; if(x>=10)
y=3*x-2; printf("y=%f\n",y); }
第3题:程序代码
#include void main()
{int f[20]={1,1},i; for(i=2;i<20;i++)
f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) {if(i%4==0) printf("\n");
printf("%5d",f[i]);
} getch(); }
第4题:程序代码 void main()
{int m,i,j,k; for(m=100;m<=999;m++) {i=m%10; j=m%100/10; k=m/100;
if(i*i*i+j*j*j+k*k*k==m)
printf("%d\t",m); }
printf("\n"); }
第5题:程序代码 #define N 10 main()
{float a[N],aver,sum=0,t;
int i,j; printf("enter data to a:"); for(i=0;i
scanf("%f",&a[i]); for(i=1;i for(j=0;j if(a[j]
{t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("the sorted data:"); for(i=0;i
printf("%6.2f",a[i]); for(i=1;i<9;i++)
sum=sum+a[i]; aver=sum/8;
printf("aver=%6.2f\n",aver);
}
10
本文来源:https://www.wddqxz.cn/5969c3ef0f22590102020740be1e650e52eacfc7.html