C语言模拟试题.docx
《C语言模拟试题.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题.docx(23页珍藏版)》请在冰豆网上搜索。
C语言模拟试题
(1)一:
选择题(本题共15小题,满分30分)
(1).以下叙述正确的是B
A)C语言程序是由过程和函数组成的
B)C语言函数可以嵌套调用,例如:
fun(fun(x))
C)C语言函数不可以单独编译
D)C语言中除了main函数,其他函数不可作为单独文件形式存在
(2)以下C语言用户标识符中,不合法的是D
A)_1
B)AaBc
C)a_b
D)a—b
(3)若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是C
A)a=a++,i++;
B)i=(a+k)<=(i+k);
C)i=a%11;
D)i=!
a;
(4)以下程序的输出结果是(B)。
main()
{intx=2,y=-1,z=2;
if(xif(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}A)3B)2C)1D)0(5).设inta=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是(C)A.9,19B.9,20C.10,19D.10,20(6)有以下程序#include"stdio.h"main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if((i*j)>3)break;m*=i*j;}}printf("m=%d\n",m);} 程序运行后的输出结果是A A)m=6 B)m=2 C)m=4 D)m=5(7)有以下程序D#include"stdio.h"main(){inta=1;intb=2;for(;a<8;a++){b+=a;a+=2;}printf("%d,%d\n",a,b);} 程序运行后的输出结果是 A)9,18 B)8,11 C)7,11 D)10,14(8)以下关于return语句的叙述中正确的是b A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返回到调用处(9)下列选项中,能正确定义数组的语句是D A)intnum[0..2008]; B)intnum[]; C)intN=2008; intnum[N]; D)#defineN2008 intnum[N];(10).有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p,b;p=&a[3];b=p[5];b中的值是(D)A.5B.6C.8D.9 (11)有以下程序#include"stdio.h" main() {inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++)s=s+a[b[i]]; printf("%d\n",s); } 程序运行后的输出结果是c A)6 B)10 C)11 D)15(12)有以下程序 #include"stdio.h"#defineSUB(a)(a)-(a) main() {inta=2,b=3,c=5,d; d=SUB(a+b)*c; printf("%d\n",d); } 程序运行后的输出结果是C A)0 B)-12 C)-20 D)10 (13)有以下程序 #include"stdio.h" main() {inta=2,b=2,c=2; printf("%d\n",a/b&c); } 程序运行后的输出结果是a A)0 B)1 C)2 D)3(14)下面程序段的运行结果是(A)#includemain(){inta=1;intb=2;intc=2;intt;while(a{t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);}A)1,2,0B)2,1,0C)1,2,1D)2,1,1(15)有以下程序#include"stdio.h" main(){ int c=0,k; for(k=1;k<3;k++) switch(k) { default:c+=k; case 2:c++;break; case 4:c+=2;break; } printf("%d\n",c);}程序运行后的输出结果是AA)3B)5C)7D)9二填空题(本题共4小题,满分20分)1.(4分)以下程序运行结果是:X=8#includemain(){inti,j,X=0;for(i=0;i<2;i++){X++;for(j=0;j<3;j++){if(j%2)continue;X++;}X++;}printf("X=%d\n",X);}2.(4分)以下程序运行结果是:x=100123#includevoidfun1(intx){x=20;}voidfun2(intb[4]){intj;for(j=0;j<4;j++){b[j]=j;}}main(){intx=10;inta[4]={1,2,3,4},k;fun1(x);printf("x=%d\n",x);fun2(a);for(k=0;k<4;k++){printf("%d\n",a[k]);}}3.(4分)以下程序运行时输入:123456789↙则程序运行结果是:66#includemain(){intx,y;scanf("%2d%*4s%2d",&x,&y);printf("%d",y-x);}4.(8分)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。#includeintmain(){inti,j,n;charch='A';scanf("%d",&n);if(n<11){for(i=1;i<=n;i++){for(j=1;j<=n-i+1;j++){printf("%2c",ch);ch++;}printf("\n");}}elseprintf("nistoolarge!\n");printf("\n");return0;}三:判断题(本题共10小题,满分20分)1.break是结束本次循环,而continue是结束所有的循环×2.在C语言中,变量不区分大小写×3.不同的函数中可以使用相同的变量名。(√)4.形式参数是局部变量。(√ )5.若用数组名作为函数的实参,传递给形参的是数组第一个元素的值。(×)6.c语言是低级语言×7.c语言中,每个函数都必须要有一个且只有一个main函数×8.C语言中,整形常数表示的方法有3种√9.对于开辟一个静态变量,我们没有必要对它进行初始化×10.假定x和y为double型,则表达式x=2,y=x+3/2的值是3×四(本题共2小题,满分30分)编程题1.规定一个工人工作时间每个月160小时,每小时工资为5元,如果加班的话,每小时增加4元,请编程计算并打印此工人一个月的工资,要求由键盘输入工作时间(14分)。参考答案://2分包括标识符命名、缩进等代码风格#includemain(){intt,salary;//2分printf("Pleaseinputthetime:\n");scanf("%d",&t);//2分if((t<0)||(t>744))//1分一个月超过31天每天24小时,考虑到最大最小范围判断,而且合理即可{printf("Error,Thetimeyouenteredisbeyondscope!\n");return;}if(t<=160)//2分ifelse结构正确salary=t*5;//2分elsesalary=160*5+(t-160)*9;//2分printf("Thesalaryis:%d\n",salary);//2分}2.输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对20名学生成绩按从高到低进行排序。//缩进、空格、空行、标识符命名等编程规范2分#includemain(){inti,k=0,j;//2分类型错扣1分,没初始化扣1分floatave,a[20],t,sum=0;printf("请输入20个学生成绩\n");for(i=0;i<20;i++){scanf("%f",&a[i]);//1分sum=sum+a[i];//1分}ave=sum/20;//1分for(i=0;i<20;i++)//2分{if(a[i]>ave)k++;}printf("平均分是%.1f,高于平均分有%d人\n",ave,k);//1分输出显示正确for(i=0;i<18;i++)//2分双重循环for(j=0;j<18-i;j++)if(a[j-1]{t=a[j-1];a[j-1]=a[j];a[j]=t;//2分}printf("成绩降序排列为:\n");for(i=0;i<20;i++)printf("%.1f\t",a[i]);//1分输出显示正确}(2)一、选择(本题共15小题,满分30分)。1、关于c表达式5||(a=b+c)==3的值,正确的说法为A)值为1B)值为5C)值为0D)仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。(A正确)2.以下能正确定义一维数组的选项是A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};C)chara={'A','B','C'};D)inta[5]="0123";(B正确)3.有以下语句:intb;charc[10];则正确的输入c数组的语句是A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);(B正确)4.若变量c为char类型,能正确判断出c为小写字母的表达式是A)'a'<=c<='z'B)(c>='a')||(c<='z')C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')(D正确)5.凡是在函数中未指定存储类别的变量,其隐含的存储类别是A)自动B)静态C)外部D)寄存器(A正确)6.若要求从键盘读入含有空格字符的字符串,应使用函数A)gets()B)scanf()C)getchar()D)getch()(A正确)7.若有定义:intaa[8];则以下表达式中不能代表数组元素aa[1]的地址的是A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1(C正确)8.若有以下的定义:intt[3][2];则t数组最后一个元素是A)&t[3][2]B)t[3][2]C)t[2]D)t[2][1](D正确)9.若有定义:intx,*pb;以下正确的赋值表达式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x(A正确)10、若c,c1,c2均为字符型变量,下列语句执行后。c='a';c1=++c;c2=c++;c1,c2的值分别为A)c1='b',c2='c'B)c1='a',c2='c'C)c1='b',c2='b'D)c1='a',c2='b'(结果为C)11.有如下语句intx,y;scanf("%d,%d",&x,&y);若使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是A)1112<回车>B)11<回车>12<回车>C)11,<回车>12<回车>D)11,12<回车>(D正确)12、有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A)tureB)falseC)0D)1(D正确)13、下列运算符中优先级最高的运算符是A)!B)%C)-=D)&&(A正确)14、在以下程序段中,输出值为#defineP(x)3*x*xprintf("%d",P(2+3));A)75B)15C)5D)3(B正确)15、printf("%d,%d,%d,%d",6>5,6&&5,6||5,6<5);输出运行结果是A)1,1,1,1B)0,1,1,0C)1,0,1,0D)1,1,1,0(D正确)二、判断(本题共10小题,满分20分)。1、charnn[][4]={‘abc’,’2’};×2、在C语言中,如果想表示反斜杠符时要用到两个反斜杠。√3、判断字符串str1是否与字符串str2相等,应使用if((str1,str2)==0))。×4、设有数组定义:chararray[]="China";则数组array实际所占的空间为5个字节。×5、可以对整型数组进行整体输入、输出。×6、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式√7、用户定义的标识符中,大小写字母代表相同标识。×8、用数组名作为函数实参,其本质是通过实参数组名把实参数组的首地址传送给形参数组名;这样,两个数组共同占用一段内存空间。√9、在作用域内,全局变量和局部变量有重名现象。若重名,则全局变量将被屏蔽而不起作用.√10、gets()、puts()一次只能输入、输出一个字符串;scanf()、printf()可以输入、输出几个字符串。√三、填空(本题共5小题,满分20分)。1、下列程序的运行结果是____________#includeintmain(void){intn=0;while(n++<=1)printf(“%d\t”,n);printf(“%d\n”,n);return0;}答案:1232、下列程序的运行结果是____________#includeintm=13;intfun(intx,inty){intm=3;return(x*y-m);}intmain(void){inta=7,b=5;printf("%d\n",fun(a,b)/m);}答案:23、下列程序的运行结果是____________#includeintmain(void){intx,y,z;x=y=z=0;++x||++y&&++z;printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);x=y=z=-1;++x&&++y||++z;printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);return0;}答案:x=1y=0z=0x=0y=-1z=04、运行程序时,输入howdoyoudo?程序输出结果是___________________#includeintmain(void){chars[20],s1[20];scanf("%s",s);printf("%s\n",s);scanf("%s%s",s,s1);printf("s=%s,sl=%s",s,s1);puts("\n");gets(s);puts(s);}答案:howdoyoudo?hows=do,s1=youdo?5、以下程序为求2个数中较大者。其中①_____________;②______________。#includeintmain(void){intmax(intx,inty);inta,b,c;scanf("%d%d",&a,&b);c=①_____________;printf("max=%d\n",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;②______________;}答案:①max(a,b);②return(z);三、编程(本题共2小题,满分30分)。1、求10~50之间被3整除的数及其和。#includeintmain(){inti,sum=0;for(i=10;i<=50;i++)if(i%3==0){sum=sum+i;printf("%3d",i);}printf("\n10-50之间被3整除的数的和是%d\n",sum);}2、随机生成10个100~200之间整数,采用数组的方法将数据按降序排列。#include#includeintmain(){inta[10],i,j,t;for(i=0;i<10;i++)a[i]=rand()%101+100;for(i=0;i<=8;i++)for(j=0;j<=8-i;j++)if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%4d",a[i]);}(3)一、本题共15小题,满分30分(每小题2分)。1、以下合法的赋值语句是_B_A)x=y=100B)d--;C)x+y;D)c=int(a+B);2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_C_A)INPUTx、y、z;B)scanf(“%d%d%d”,x,y,z);C)scanf(“%d%d%d”,&x,&y,&z);D)read(“%d%d%d”,&x,&y,&z);3、下面标识符中,不合法的用户标识符为D。A)PkdB)k_90C)_924D)k#b4、下面不是字符串常量的是A。A)‘abc’B)“12’12”C)”0”D)“”5、下面不属于C语言的数据类型是_C_。A)整型B)实型C)逻辑型D)双精度实型6、若定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是B。A)7B)2.50000C)3.500000D)0.000007、设有以下定义:#defineg2inta=0;doubleb=1.25;charq=’A’;则下面语句中错误的是D。A)a++;B)b++;C)q++;D)g++;8、设有程序段:intk=10;while(k==0)k=k-1;则下面描述中正确的是C。A)while循环执行10次B)循环是无限循环C)循环语句一次也不执行D)循环体语句执行一次9、假定a和b为int型变量,则执行以下语句后b的值为_D_a=1;b=10;do{b-=a;a++;}while(b--<0);A)9B)-2C)-1D)810、设j为int型变量,则下面for循环语句的执行结果是_B_for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}A)63B)74C)62D)7311、以下只有在使用时才为该类型变量分配内存的存储类说明是_B_A)auto和static B)auto和registerC)register和static D)extern和register12、有如下程序#includeintfunc(intk,intq){return(k+q);}voidmain(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出的结果是_D_A)12B)13C)14D)1513、在定义inta[10];之后,对a的引用正确的是C。A)a[10]B)a[6.3]C)a[10-10]D)a(6)
if(y<0)z=0;
elsez=z+1;
printf(“%d\n”,z);
}
A)3B)2C)1D)0
(5).设inta=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是(C)
A.9,19B.9,20
C.10,19D.10,20
(6)有以下程序
#include"stdio.h"
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if((i*j)>3)break;
m*=i*j;
printf("m=%d\n",m);
程序运行后的输出结果是A
A)m=6
B)m=2
C)m=4
D)m=5
(7)有以下程序D
{inta=1;intb=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d,%d\n",a,b);
程序运行后的输出结果是
A)9,18
B)8,11
C)7,11
D)10,14
(8)以下关于return语句的叙述中正确的是b
A)一个自定义函数中必须有一条return语句
B)一个自定义函数中可以根据不同情况设置多条return语句
C)定义成void类型的函数中可以有带返回值的return语句
D)没有return语句的自定义函数在执行结束时不能返回到调用处
(9)下列选项中,能正确定义数组的语句是D
A)intnum[0..2008];
B)intnum[];
C)intN=2008;
intnum[N];
D)#defineN2008
(10).有以下程序段
inta[10]={1,2,3,4,5,6,7,8,9,10},*p,b;
p=&a[3];
b=p[5];
b中的值是(D)
A.5B.6C.8D.9
(11)有以下程序
{inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
for(i=0;i<5;i++)s=s+a[b[i]];
printf("%d\n",s);
程序运行后的输出结果是c
A)6
B)10
C)11
D)15
(12)有以下程序
#defineSUB(a)(a)-(a)
{inta=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
程序运行后的输出结果是C
A)0
B)-12
C)-20
D)10
(13)有以下程序
{inta=2,b=2,c=2;
printf("%d\n",a/b&c);
程序运行后的输出结果是a
B)1
C)2
D)3
(14)下面程序段的运行结果是(A)
#include
{inta=1;intb=2;intc=2;intt;
while(a
{t=a;a=b;b=t;c--;
printf("%d,%d,%d",a,b,c);
A)1,2,0B)2,1,0C)1,2,1D)2,1,1
(15)有以下程序
{ int c=0,k;
for(k=1;k<3;k++)
switch(k)
{ default:
c+=k;
case 2:
c++;break;
case 4:
c+=2;break;
printf("%d\n",c);
A)3
B)5
C)7
D)9
二填空题(本题共4小题,满分20分)
1.(4分)以下程序运行结果是:
X=8
{
inti,j,X=0;
for(i=0;i<2;i++)
X++;
for(j=0;j<3;j++)
if(j%2)continue;
printf("X=%d\n",X);
2.(4分)以下程序运行结果是:
x=10
0
1
2
3
voidfun1(intx)
x=20;
voidfun2(intb[4])
intj;
for(j=0;j<4;j++)
b[j]=j;
intx=10;
inta[4]={1,2,3,4},k;
fun1(x);
printf("x=%d\n",x);
fun2(a);
for(k=0;k<4;k++)
printf("%d\n",a[k]);
3.(4分)以下程序运行时输入:
123456789↙
则程序运行结果是:
66
intx,y;
scanf("%2d%*4s%2d",&x,&y);
printf("%d",y-x);
4.(8分)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。
例如,输入整数5时(注意:
n不得大于10),程序运行结果如下:
ABCDE
FGHI
JKL
MN
O
请填空完成该程序。
intmain()
inti,j,n;charch='A';
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1;j<=n-i+1;j++)
{printf("%2c",ch);
ch++;
printf("\n");
elseprintf("nistoolarge!
\n");
return0;}
三:
判断题(本题共10小题,满分20分)
1.break是结束本次循环,而continue是结束所有的循环×
2.在C语言中,变量不区分大小写×
3.不同的函数中可以使用相同的变量名。
(√)
4.形式参数是局部变量。
(√ )
5.若用数组名作为函数的实参,传递给形参的是数组第一个元素的值。
(×)
6.c语言是低级语言×
7.c语言中,每个函数都必须要有一个且只有一个main函数×
8.C语言中,整形常数表示的方法有3种√
9.对于开辟一个静态变量,我们没有必要对它进行初始化×
10.假定x和y为double型,则表达式x=2,y=x+3/2的值是3×
四(本题共2小题,满分30分)
编程题
1.规定一个工人工作时间每个月160小时,每小时工资为5元,如果加班的话,每小时增加4元,请编程计算并打印此工人一个月的工资,要求由键盘输入工作时间(14分)。
参考答案:
//2分包括标识符命名、缩进等代码风格
intt,salary;//2分
printf("Pleaseinputthetime:
scanf("%d",&t);//2分
if((t<0)||(t>744))
//1分一个月超过31天每天24小时,考虑到最大最小范围判断,而且合理即可
printf("Error,Thetimeyouenteredisbeyondscope!
return;
if(t<=160)//2分ifelse结构正确
salary=t*5;//2分
else
salary=160*5+(t-160)*9;//2分
printf("Thesalaryis:
%d\n",salary);//2分
2.输入20个学生的成绩,求出其中大于平均成绩学生的人数,并对20名学生成绩按从高到低进行排序。
//缩进、空格、空行、标识符命名等编程规范2分
inti,k=0,j;//2分类型错扣1分,没初始化扣1分
floatave,a[20],t,sum=0;
printf("请输入20个学生成绩\n");
for(i=0;i<20;i++)
scanf("%f",&a[i]);//1分
sum=sum+a[i];//1分
ave=sum/20;//1分
for(i=0;i<20;i++)//2分
if(a[i]>ave)
k++;
printf("平均分是%.1f,高于平均分有%d人\n",ave,k);//1分输出显示正确
for(i=0;i<18;i++)//2分双重循环
for(j=0;j<18-i;j++)
if(a[j-1]{t=a[j-1];a[j-1]=a[j];a[j]=t;//2分}printf("成绩降序排列为:\n");for(i=0;i<20;i++)printf("%.1f\t",a[i]);//1分输出显示正确}(2)一、选择(本题共15小题,满分30分)。1、关于c表达式5||(a=b+c)==3的值,正确的说法为A)值为1B)值为5C)值为0D)仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。(A正确)2.以下能正确定义一维数组的选项是A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};C)chara={'A','B','C'};D)inta[5]="0123";(B正确)3.有以下语句:intb;charc[10];则正确的输入c数组的语句是A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);(B正确)4.若变量c为char类型,能正确判断出c为小写字母的表达式是A)'a'<=c<='z'B)(c>='a')||(c<='z')C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')(D正确)5.凡是在函数中未指定存储类别的变量,其隐含的存储类别是A)自动B)静态C)外部D)寄存器(A正确)6.若要求从键盘读入含有空格字符的字符串,应使用函数A)gets()B)scanf()C)getchar()D)getch()(A正确)7.若有定义:intaa[8];则以下表达式中不能代表数组元素aa[1]的地址的是A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1(C正确)8.若有以下的定义:intt[3][2];则t数组最后一个元素是A)&t[3][2]B)t[3][2]C)t[2]D)t[2][1](D正确)9.若有定义:intx,*pb;以下正确的赋值表达式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x(A正确)10、若c,c1,c2均为字符型变量,下列语句执行后。c='a';c1=++c;c2=c++;c1,c2的值分别为A)c1='b',c2='c'B)c1='a',c2='c'C)c1='b',c2='b'D)c1='a',c2='b'(结果为C)11.有如下语句intx,y;scanf("%d,%d",&x,&y);若使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是A)1112<回车>B)11<回车>12<回车>C)11,<回车>12<回车>D)11,12<回车>(D正确)12、有如下程序段inta=14,b=15,x;charc='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为A)tureB)falseC)0D)1(D正确)13、下列运算符中优先级最高的运算符是A)!B)%C)-=D)&&(A正确)14、在以下程序段中,输出值为#defineP(x)3*x*xprintf("%d",P(2+3));A)75B)15C)5D)3(B正确)15、printf("%d,%d,%d,%d",6>5,6&&5,6||5,6<5);输出运行结果是A)1,1,1,1B)0,1,1,0C)1,0,1,0D)1,1,1,0(D正确)二、判断(本题共10小题,满分20分)。1、charnn[][4]={‘abc’,’2’};×2、在C语言中,如果想表示反斜杠符时要用到两个反斜杠。√3、判断字符串str1是否与字符串str2相等,应使用if((str1,str2)==0))。×4、设有数组定义:chararray[]="China";则数组array实际所占的空间为5个字节。×5、可以对整型数组进行整体输入、输出。×6、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式√7、用户定义的标识符中,大小写字母代表相同标识。×8、用数组名作为函数实参,其本质是通过实参数组名把实参数组的首地址传送给形参数组名;这样,两个数组共同占用一段内存空间。√9、在作用域内,全局变量和局部变量有重名现象。若重名,则全局变量将被屏蔽而不起作用.√10、gets()、puts()一次只能输入、输出一个字符串;scanf()、printf()可以输入、输出几个字符串。√三、填空(本题共5小题,满分20分)。1、下列程序的运行结果是____________#includeintmain(void){intn=0;while(n++<=1)printf(“%d\t”,n);printf(“%d\n”,n);return0;}答案:1232、下列程序的运行结果是____________#includeintm=13;intfun(intx,inty){intm=3;return(x*y-m);}intmain(void){inta=7,b=5;printf("%d\n",fun(a,b)/m);}答案:23、下列程序的运行结果是____________#includeintmain(void){intx,y,z;x=y=z=0;++x||++y&&++z;printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);x=y=z=-1;++x&&++y||++z;printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);return0;}答案:x=1y=0z=0x=0y=-1z=04、运行程序时,输入howdoyoudo?程序输出结果是___________________#includeintmain(void){chars[20],s1[20];scanf("%s",s);printf("%s\n",s);scanf("%s%s",s,s1);printf("s=%s,sl=%s",s,s1);puts("\n");gets(s);puts(s);}答案:howdoyoudo?hows=do,s1=youdo?5、以下程序为求2个数中较大者。其中①_____________;②______________。#includeintmain(void){intmax(intx,inty);inta,b,c;scanf("%d%d",&a,&b);c=①_____________;printf("max=%d\n",c);}intmax(intx,inty){intz;if(x>y)z=x;elsez=y;②______________;}答案:①max(a,b);②return(z);三、编程(本题共2小题,满分30分)。1、求10~50之间被3整除的数及其和。#includeintmain(){inti,sum=0;for(i=10;i<=50;i++)if(i%3==0){sum=sum+i;printf("%3d",i);}printf("\n10-50之间被3整除的数的和是%d\n",sum);}2、随机生成10个100~200之间整数,采用数组的方法将数据按降序排列。#include#includeintmain(){inta[10],i,j,t;for(i=0;i<10;i++)a[i]=rand()%101+100;for(i=0;i<=8;i++)for(j=0;j<=8-i;j++)if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%4d",a[i]);}(3)一、本题共15小题,满分30分(每小题2分)。1、以下合法的赋值语句是_B_A)x=y=100B)d--;C)x+y;D)c=int(a+B);2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_C_A)INPUTx、y、z;B)scanf(“%d%d%d”,x,y,z);C)scanf(“%d%d%d”,&x,&y,&z);D)read(“%d%d%d”,&x,&y,&z);3、下面标识符中,不合法的用户标识符为D。A)PkdB)k_90C)_924D)k#b4、下面不是字符串常量的是A。A)‘abc’B)“12’12”C)”0”D)“”5、下面不属于C语言的数据类型是_C_。A)整型B)实型C)逻辑型D)双精度实型6、若定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是B。A)7B)2.50000C)3.500000D)0.000007、设有以下定义:#defineg2inta=0;doubleb=1.25;charq=’A’;则下面语句中错误的是D。A)a++;B)b++;C)q++;D)g++;8、设有程序段:intk=10;while(k==0)k=k-1;则下面描述中正确的是C。A)while循环执行10次B)循环是无限循环C)循环语句一次也不执行D)循环体语句执行一次9、假定a和b为int型变量,则执行以下语句后b的值为_D_a=1;b=10;do{b-=a;a++;}while(b--<0);A)9B)-2C)-1D)810、设j为int型变量,则下面for循环语句的执行结果是_B_for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}A)63B)74C)62D)7311、以下只有在使用时才为该类型变量分配内存的存储类说明是_B_A)auto和static B)auto和registerC)register和static D)extern和register12、有如下程序#includeintfunc(intk,intq){return(k+q);}voidmain(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出的结果是_D_A)12B)13C)14D)1513、在定义inta[10];之后,对a的引用正确的是C。A)a[10]B)a[6.3]C)a[10-10]D)a(6)
t=a[j-1];a[j-1]=a[j];a[j]=t;//2分
printf("成绩降序排列为:
printf("%.1f\t",a[i]);//1分输出显示正确
(2)一、选择(本题共15小题,满分30分)。
1、关于c表达式5||(a=b+c)==3的值,正确的说法为
A)值为1B)值为5C)值为0
D)仅这一个表达式,不能确定值,必须知道a,b,c的值后才能计算。
(A正确)
2.以下能正确定义一维数组的选项是
A)inta[5]={0,1,2,3,4,5};
B)chara[]={0,1,2,3,4,5};
C)chara={'A','B','C'};
D)inta[5]="0123";
(B正确)
3.有以下语句:
intb;charc[10];则正确的输入c数组的语句是
A)scanf("%d%s",&b,&c);
B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);
D)scanf("%d%s",b,&c);
4.若变量c为char类型,能正确判断出c为小写字母的表达式是
A)'a'<=c<='z'
B)(c>='a')||(c<='z')
C)('a'<=c)and('z'>=c)
D)(c>='a')&&(c<='z')
(D正确)
5.凡是在函数中未指定存储类别的变量,其隐含的存储类别是
A)自动
B)静态
C)外部
D)寄存器
6.若要求从键盘读入含有空格字符的字符串,应使用函数
A)gets()
B)scanf()
C)getchar()
D)getch()
7.若有定义:
intaa[8];则以下表达式中不能代表数组元素aa[1]的地址的是
A)&aa[0]+1
B)&aa[1]
C)&aa[0]++
D)aa+1
(C正确)
8.若有以下的定义:
intt[3][2];则t数组最后一个元素是
A)&t[3][2]
B)t[3][2]
C)t[2]
D)t[2][1]
9.若有定义:
intx,*pb;以下正确的赋值表达式是
A)pb=&x
B)pb=x
C)*pb=&x
D)*pb=*x
10、若c,c1,c2均为字符型变量,下列语句执行后。
c='a';
c1=++c;
c2=c++;
c1,c2的值分别为
A)c1='b',c2='c'B)c1='a',c2='c'C)c1='b',c2='b'D)c1='a',c2='b'
(结果为C)
11.有如下语句
intx,y;
scanf("%d,%d",&x,&y);
若使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是
A)1112<回车>
B)11<回车>12<回车>
C)11,<回车>12<回车>
D)11,12<回车>
12、有如下程序段
inta=14,b=15,x;
charc='A';
x=(a&&b)&&(c<'B');
执行该程序段后,x的值为
A)ture
B)false
C)0
D)1
13、下列运算符中优先级最高的运算符是
A)!
B)%
C)-=
D)&&
14、在以下程序段中,输出值为
#defineP(x)3*x*x
printf("%d",P(2+3));
A)75
B)15
C)5
15、printf("%d,%d,%d,%d",6>5,6&&5,6||5,6<5);输出运行结果是
A)1,1,1,1
B)0,1,1,0
C)1,0,1,0
D)1,1,1,0
二、判断(本题共10小题,满分20分)。
1、charnn[][4]={‘abc’,’2’};×
2、在C语言中,如果想表示反斜杠符时要用到两个反斜杠。
√
3、判断字符串str1是否与字符串str2相等,应使用if((str1,str2)==0))。
×
4、设有数组定义:
chararray[]="China";则数组array实际所占的空间为5个字节。
5、可以对整型数组进行整体输入、输出。
6、在C语言中,引用数组元素时,其数组下标的数据类型允许是整型常量或整型表达式√
7、用户定义的标识符中,大小写字母代表相同标识。
8、用数组名作为函数实参,其本质是通过实参数组名把实参数组的首地址传送给形参数组名;这样,两个数组共同占用一段内存空间。
9、在作用域内,全局变量和局部变量有重名现象。
若重名,则全局变量将被屏蔽而不起作用.√
10、gets()、puts()一次只能输入、输出一个字符串;scanf()、printf()可以输入、输出几个字符串。
三、填空(本题共5小题,满分20分)。
1、下列程序的运行结果是____________
intmain(void)
{intn=0;
while(n++<=1)
printf(“%d\t”,n);
printf(“%d\n”,n);
return0;
答案:
123
2、下列程序的运行结果是____________
intm=13;
intfun(intx,inty)
{intm=3;return(x*y-m);}
{inta=7,b=5;
printf("%d\n",fun(a,b)/m);
3、下列程序的运行结果是____________
{intx,y,z;
x=y=z=0;
++x||++y&&++z;
printf(“x=%d\ty=%d\tz=%d\n”,x,y,z);
x=y=z=-1;
++x&&++y||++z;
x=1y=0z=0
x=0y=-1z=0
4、运行程序时,输入howdoyoudo?
程序输出结果是___________________
{chars[20],s1[20];
scanf("%s",s);
printf("%s\n",s);
scanf("%s%s",s,s1);
printf("s=%s,sl=%s",s,s1);
puts("\n");
gets(s);
puts(s);
答案:
howdoyoudo?
how
s=do,s1=you
do?
5、以下程序为求2个数中较大者。
其中①_____________;②______________。
{intmax(intx,inty);
inta,b,c;
scanf("%d%d",&a,&b);
c=①_____________;
printf("max=%d\n",c);
intmax(intx,inty)
{intz;
if(x>y)z=x;
elsez=y;
②______________;
①max(a,b);②return(z);
三、编程(本题共2小题,满分30分)。
1、求10~50之间被3整除的数及其和。
inti,sum=0;
for(i=10;i<=50;i++)
if(i%3==0)
sum=sum+i;
printf("%3d",i);
printf("\n10-50之间被3整除的数的和是%d\n",sum);
2、随机生成10个100~200之间整数,采用数组的方法将数据按降序排列。
inta[10],i,j,t;
for(i=0;i<10;i++)
a[i]=rand()%101+100;
for(i=0;i<=8;i++)
for(j=0;j<=8-i;j++)
if(a[j]{t=a[j];a[j]=a[j+1];a[j+1]=t;}for(i=0;i<10;i++)printf("%4d",a[i]);}(3)一、本题共15小题,满分30分(每小题2分)。1、以下合法的赋值语句是_B_A)x=y=100B)d--;C)x+y;D)c=int(a+B);2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_C_A)INPUTx、y、z;B)scanf(“%d%d%d”,x,y,z);C)scanf(“%d%d%d”,&x,&y,&z);D)read(“%d%d%d”,&x,&y,&z);3、下面标识符中,不合法的用户标识符为D。A)PkdB)k_90C)_924D)k#b4、下面不是字符串常量的是A。A)‘abc’B)“12’12”C)”0”D)“”5、下面不属于C语言的数据类型是_C_。A)整型B)实型C)逻辑型D)双精度实型6、若定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是B。A)7B)2.50000C)3.500000D)0.000007、设有以下定义:#defineg2inta=0;doubleb=1.25;charq=’A’;则下面语句中错误的是D。A)a++;B)b++;C)q++;D)g++;8、设有程序段:intk=10;while(k==0)k=k-1;则下面描述中正确的是C。A)while循环执行10次B)循环是无限循环C)循环语句一次也不执行D)循环体语句执行一次9、假定a和b为int型变量,则执行以下语句后b的值为_D_a=1;b=10;do{b-=a;a++;}while(b--<0);A)9B)-2C)-1D)810、设j为int型变量,则下面for循环语句的执行结果是_B_for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf("%d",j);}A)63B)74C)62D)7311、以下只有在使用时才为该类型变量分配内存的存储类说明是_B_A)auto和static B)auto和registerC)register和static D)extern和register12、有如下程序#includeintfunc(intk,intq){return(k+q);}voidmain(){intx=2,y=5,z=8,r;r=func(func(x,y),z);printf("%d\n",r);}该程序的输出的结果是_D_A)12B)13C)14D)1513、在定义inta[10];之后,对a的引用正确的是C。A)a[10]B)a[6.3]C)a[10-10]D)a(6)
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
printf("%4d",a[i]);
(3)一、本题共15小题,满分30分(每小题2分)。
1、以下合法的赋值语句是_B_
A)x=y=100B)d--;C)x+y;D)c=int(a+B);
2、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是_C_
A)INPUTx、y、z;B)scanf(“%d%d%d”,x,y,z);
C)scanf(“%d%d%d”,&x,&y,&z);D)read(“%d%d%d”,&x,&y,&z);
3、下面标识符中,不合法的用户标识符为D。
A)PkdB)k_90C)_924D)k#b
4、下面不是字符串常量的是A。
A)‘abc’B)“12’12”C)”0”D)“”
5、下面不属于C语言的数据类型是_C_。
A)整型B)实型C)逻辑型D)双精度实型
6、若定义:
inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是B。
A)7B)2.50000C)3.500000D)0.00000
7、设有以下定义:
#defineg2
inta=0;doubleb=1.25;charq=’A’;
则下面语句中错误的是D。
A)a++;B)b++;C)q++;D)g++;
8、设有程序段:
intk=10;while(k==0)k=k-1;则下面描述中正确的是C。
A)while循环执行10次B)循环是无限循环
C)循环语句一次也不执行D)循环体语句执行一次
9、假定a和b为int型变量,则执行以下语句后b的值为_D_
a=1;
b=10;
do{
b-=a;
a++;
}while(b--<0);
A)9B)-2C)-1D)8
10、设j为int型变量,则下面for循环语句的执行结果是_B_
for(j=10;j>3;j--)
if(j%3)
j--;
--j;
printf("%d",j);
A)63B)74C)62D)73
11、以下只有在使用时才为该类型变量分配内存的存储类说明是_B_
A)auto和static B)auto和register
C)register和static D)extern和register
12、有如下程序
intfunc(intk,intq)
{return(k+q);}
voidmain()
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf("%d\n",r);
该程序的输出的结果是_D_
A)12B)13C)14D)15
13、在定义inta[10];之后,对a的引用正确的是C。
A)a[10]B)a[6.3]C)a[10-10]D)a(6)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1