C语言模拟题.docx

上传人:b****8 文档编号:29566226 上传时间:2023-07-24 格式:DOCX 页数:34 大小:26.89KB
下载 相关 举报
C语言模拟题.docx_第1页
第1页 / 共34页
C语言模拟题.docx_第2页
第2页 / 共34页
C语言模拟题.docx_第3页
第3页 / 共34页
C语言模拟题.docx_第4页
第4页 / 共34页
C语言模拟题.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

C语言模拟题.docx

《C语言模拟题.docx》由会员分享,可在线阅读,更多相关《C语言模拟题.docx(34页珍藏版)》请在冰豆网上搜索。

C语言模拟题.docx

C语言模拟题

第一套

一:

选择题(本题共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(x

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"

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)

#include

main()

{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);

}

程序运行后的输出结果是A

A)3

B)5

C)7

D)9

二填空题(本题共4小题,满分20分)

1.(4分)以下程序运行结果是:

X=8

#include

main()

{

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=10

0

1

2

3

#include

voidfun1(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

#include

main()

{

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

请填空完成该程序。

#include

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");

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分包括标识符命名、缩进等代码风格

#include

main()

{

intt,salary;//2分

printf("Pleaseinputthetime:

\n");

scanf("%d",&t);//2分

if((t<0)||(t>744))

//1分一个月超过31天每天24小时,考虑到最大最小范围判断,而且合理即可

{

printf("Error,Thetimeyouenteredisbeyond

scope!

\n");

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分

#include

main()

{

intp=20,i,k=0,j;//2分类型错扣1分,没初始化扣1分

floatave,a[20],t,sum=0;

printf("Pleaseinputthescoreofthestudents:

\n");

for(i=0;i

scanf("%f",&a[i]);

for(i=0;i

sum=sum+a[i];

ave=sum/p;//1分

for(i=0;i

{

if(a[i]>ave)

k++;

}

for(i=0;i

for(j=1;j

if(a[j-1]

{

t=a[j-1];a[j-1]=a[j];a[j]=t;//2分

}

printf("studentsabovetheaveragescoreandtheaveragescore:

%d,%.1f\n",k,ave);//1分输出显示正确

printf("Thescorefromuptodownis:

\n");

for(i=0;i

printf("%.1f\t",a[i]);//1分输出显示正确

}

 

第二套

 

一、选择(本题共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);

(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]+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]

(D正确)

9.若有定义:

intx,*pb;以下正确的赋值表达式是

A)pb=&x

B)pb=x

C)*pb=&x

D)*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)ture

B)false

C)0

D)1

(D正确)

13、下列运算符中优先级最高的运算符是

A)!

B)%

C)-=

D)&&

(A正确)

14、在以下程序段中,输出值为

#defineP(x)3*x*x

printf("%d",P(2+3));

A)75

B)15

C)5

D)3

(B正确)

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

(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、下列程序的运行结果是____________

#include

intmain(void)

{intn=0;

while(n++<=1)

printf(“%d\t”,n);

printf(“%d\n”,n);

return0;

}

答案:

123

2、下列程序的运行结果是____________

#include

intm=13;

intfun(intx,inty)

{intm=3;return(x*y-m);}

intmain(void)

{inta=7,b=5;

printf("%d\n",fun(a,b)/m);

}

答案:

2

3、下列程序的运行结果是____________

#include

intmain(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=0

x=0y=-1z=0

4、运行程序时,输入howdoyoudo?

程序输出结果是___________________

#include

intmain(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?

how

s=do,s1=you

do?

5、以下程序为求2个数中较大者。

其中①_____________;②______________。

#include

intmain(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整除的数及其和。

 

2、随机生成10个100~200之间整数,采用数组的方法将数据按降序排列。

第三套

 

一、本题共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;

--j;

printf("%d",j);

}

A)63B)74C)62D)73

11、以下只有在使用时才为该类型变量分配内存的存储类说明是_B_

A)auto和staticB)auto和register

C)register和staticD)extern和register

12、有如下程序

#include

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)

14、为了判断两个字符串s1和s2是否相等,应当使用D。

A)if(s1==s2)

B)if(s1=s2)

C)if(strcpy(s1,s2))

D)if(strcmp(s1,s2)==0)

15、若有如下定义语句:

inta[10]={1,2,3,4,5,6,7,8,9,10};

则对数组正确的引用是_B_。

A)a[10]B)a[a[4]+4]C)a[a[9]]D)a[a[3]5]

得分评卷人

二、本题共10小题,满分20分(每小题2分)。

1、C语句末尾必须有分号。

2、不同的函数中可以使用相

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1