323#程序设计.docx
《323#程序设计.docx》由会员分享,可在线阅读,更多相关《323#程序设计.docx(19页珍藏版)》请在冰豆网上搜索。
![323#程序设计.docx](https://file1.bdocx.com/fileroot1/2022-12/29/46a06528-50fd-4e1a-875e-3b43eb5d95cc/46a06528-50fd-4e1a-875e-3b43eb5d95cc1.gif)
323#程序设计
《C语言程序设计》模拟卷A
题号
一
二
三
四
总分
得分
评卷人
一、选择题:
1.一个C语言的源程序中_A____。
A)必须有一个主函数B)可以有多个主函数
C)必须有主函数和其他函数D)可以没有主函数
2.执行以下语句的结果为___C___。
y=10;x=y++;
A)x=10,y=10B)x=11,y=11
C)x=10,y=11D)x=11,y=10
3.执行以下程序段后,c3的值是___A___。
intc1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
4.C语言中字符型(char)数据在内存中的形式存储是____D_。
A)原码 B)补码 C)反码 D)ASCII码
5.下列常数中不能作为C的常量的是_D___。
A)0xA5 B)2.5e-2 C)3e2 D)2e32.6
6.C语言中整数-8在内存中的存储形式是__A____。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
7.已知inti,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是__D____。
A)6 B)12 C)30 D)36
8.执行以下程序段后,a,b,c的值分别是___B___。
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语言程序的基本组成单位是___C___。
A)主程序 B)子程序 C)函数 D)过程
10.已知函数abc的定义为:
voidabc()
{.......}
则函数定义中void的含义是___A__。
A)执行函数abc后,函数没有返回值
B)执行函数abc后,函数不再返回
C)执行函数abc后,可以返回任意类型
D)以上三个答案全是错误的
11.以下程序的输出结果是__C__。
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];它的含义是___C__。
A)p是指向double型变量的指针B)p是double型数组
C)p是指针数组D)p是数组指针
13.已知:
int*p,a;则语句"p=&a;"中的运算符"&"的含义是_D____。
A)位与运算B)逻辑与运算C)取指针内容D)取变量地址
14.变量的指针,其含义是指该变量的(B)
A)值B)地址C)名D)一个标志
15.下面程序段的运行结果是:
(C)
charc[]=”\t\v\\\0will\n”
printf(“%d”,strlen(c));
A)14B)3C)9D)字符串中有非法字符,输出值不确定
二、填空题:
1.表达式10+16%3的值为___11________。
2.写出满足下列条件的表达式:
a和b都不小于c__(a>c=)&&(b>=c)___(a>c=)&&(b>=c)__。
3.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为___0__。
4.下面函数的功能是求整数1到n的和请把程序补充完整。
longsum(intn)
{inti;
____ints=0;______
for(i=1;i<=n;i++)
_____s+=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______________________。
2.main()
{inti=3
while(i<10))
{if(i<6)
{i+=2;
continue;
}
else
printf(“%d”,++i);
}
}
________________8___________________。
3.#include“stdio.h”
#defineX5
#defineYX+1
#defineZY*X/2
main()
{inta;
a=Y;
printf(“%d%d\n”,Z,--a);
}
______________615_____________________。
四、编程题:
(共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语言程序设计》模拟卷B
题号
一
二
三
四
总分
得分
评卷人
一、选择题:
1.一个C语言程序的基本组成单位是__C____。
A)主程序 B)子程序 C)函数 D)过程
2.C语言中字符型(char)数据在内存中的形式存储是__D____。
A)原码 B)补码 C)反码 D)ASCII码
3.执行以下程序段后,c3的值是___A___。
intc1=1,c2=2,c3;
c3=c1/c2;
A)0 B)1/2 C)0.5 D)1
4.执行以下语句的结果为__C____。
y=10;x=y++;
A)x=10,y=10B)x=11,y=11
C)x=10,y=11D)x=11,y=10
5.下列常数中不能作为C的常量的是___D___。
A)0xA5 B)2.5e-2 C)3e2 D)2e32.6
6.C语言中整数-8在内存中的存储形式是___A___。
A)1111111111111000B)1000000000001000
C)0000000000001000D)1111111111110111
7.已知inti,a;执行语句"i=(a=2*3,a*5),a+6;"后,变量i的值是___D___。
A)6 B)12 C)30 D)36
8.执行以下程序段后,a,b,c的值分别是__B____。
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.下列程序段__A____。
x=3;
do
{y=x--;
if(!
y){printf("x");
continue;
}
printf("#");
}while(1<=x&&x<=2);
A)输出### B)输出##x C)是死循环 D)有语法错
10.一个C语言的源程序中__A____。
A)必须有一个主函数B)可以有多个主函数
C)必须有主函数和其他函数D)可以没有主函数
11.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递方式是__B___。
A)地址传递B)值传递
C)由实参传给形参,并由形参传回来给实参D)由用户指定传递方式
12.以下程序的输出结果是_C___。
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;"中的运算符"&"的含义是__D___。
A)位与运算B)逻辑与运算C)取指针内容D)取变量地址
14.说明语句"int(*p)();"的含义是__C___。
A)p是一个指向一维数组的指针变量
B)p是指针变量,指向一个整型数据
C)p是一个指向函数的指针,该函数的返回值是一个整型
D)以上都不对
15.变量的指针,其含义是指该变量的(B)
A)值B)地址C)名D)一个标志
二、填空题:
1.表达式10+16%3的值为_____11______。
2.写出满足下列条件的表达式:
a和b都不小于c____(a>=c)&&(b>=c)_________________。
3.若有定义:
inta[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值为___0__。
4.下面函数的功能是求1到n的和请把程序补充完整。
longsum(intn)
{inti;
___ints=0;_______
for(i=1;i<=n;i++)
____s+=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_______________。
2.main()
{inti=3
while(i<10))
{if(i<6)
{i+=2;
continue;
}
else
printf(“%d”,++i);
}
}
_______________8____________________。
3.#include“stdio.h”
#defineX5
#defineYX+1
#defineZY*X/2
main()
{inta;
a=Y;
printf(“%d%d\n”,Z,--a);
}
__________________156_________________。
四、编程题:
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语言程序设计》模拟卷C
题号
一
二
三
四
总分
得分
评卷人
一、选择题
1.以下说法中正确的是(C)。
A.C语言程序总是从第一个函数开始执行
B.C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
2.下列为字符常量的是(C)。
A.“a”B.‘ab’C.‘\n’D.‘\084’
3.在C语言中,下面字符串能用作变量名的是(D)。
A.a+bB.autoC.2-andD.a2
4.在C语言中运算对象必须是整型的运算符是(A)。
A.%B./C.==D.<=
5.若有以下定义:
intx=10,y=3,z;则语句:
printf(“%d\n”,z=(x%y,x/y));的输出结果为(D)。
A.1B.0C.2D.3
6.表达式(A)的值是整数类型。
A.15/2B.15/2+2.0C.25/5.0D.0.5*10
7.若doublex=2,y;则执行y=x+3/2;后,y的值是(A)。
A.3.500000B.3.000000C.2.000000D.3
8.C语言程序的基本单位是(C)。
A.程序行B.语句C.函数D.字符
9.设int类型的数据长度为2字节,则int类型数据的取值范围是(B)。
A.0~255B.-32768~32767C.-256~255D.0~65535
10.语句int(*p)()的含义是(C)。
A.p是一个指向一维数组的指针变量
B.p是指针变量,它指向一个整型数据的指针
C.p是一个指向函数的指针,该函数的返回值为整型
D.以上答案都不对
11.下面程序的输出结果是(A)。
main()
{intx=10,y=10;
printf(“%d,%d\n”,x--,y--);
}
A.10,10B.9,9C.9,10D.10,9
12.(A)是C语言的标准函数名。
A.scanfB.caseC.whileD.int
13.下面程序的输出结果是(D)。
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.以下定义语句中,错误的是(D)。
A.inta[]={1,2}B.inta[][3]={1,2,3,4,5};
C.chars[10]=“test”;D.intn=5,a[n];
15.在一个源文件中定义的全局变量的作用域为(A)。
A.本文件的全部范围B.从定义该变量开始至本文件结束
C.本函数的全部范围D.本程序的全部范围
16.int型变量在内存中占2个字节,若inta[10]={0,2,4};则数组a所占字节数是(C)。
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);
}
程序运行后的输出结果是(C)。
A.55B.76
C.75D.66
18.下面程序运行时,如果从键盘上输入5,则输出的结果是(B)。
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占用内存的字节数是(B)。
A.10B.18C.9D.2
20.以下程序的输出结果是(B)。
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包含有10个元素。
2.数学表达式x3+y3在C语言中应表示为x*x*x+y*y*y。
3.若有数据3.5需要存储到变量x中,则变量x定义应写为float。
4.有如下程序段
int*p,a=10,b=1;p=&a;a=*p+b;
执行该程序段后,a的值为11。
5.表达式“0≤a≤10”在C语言中应表示为(a>=0)&&(a<=10)。
6.若有定义floatx,y;则从键盘给x、y输入数据的语句应写为
scanf(“%f,%f”,&x,&y);。
7.有以下程序
#defineSQR(x)(x)*(x)
main()
{inta,k=3;
a=SQR(k+1);
printf(“%d\n”,a);
}
程序运行后的输出结果为16。
8.以下程序的输出结果为55。
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.以下程序的输出结果为ComputerLanguage。
#include
#include
voidmain()
{charstr1[20]=”Computer”,str2[]=”Language”;
strcat(str1,str2);
printf(“%s\n”,str1);
}
10.以下程序的输出结果为1,6。
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;则执