C语言程序设计考试模拟题.docx

上传人:b****5 文档编号:29085131 上传时间:2023-07-20 格式:DOCX 页数:66 大小:36KB
下载 相关 举报
C语言程序设计考试模拟题.docx_第1页
第1页 / 共66页
C语言程序设计考试模拟题.docx_第2页
第2页 / 共66页
C语言程序设计考试模拟题.docx_第3页
第3页 / 共66页
C语言程序设计考试模拟题.docx_第4页
第4页 / 共66页
C语言程序设计考试模拟题.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

C语言程序设计考试模拟题.docx

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

C语言程序设计考试模拟题.docx

C语言程序设计考试模拟题

C语言程序设计考试

考试总分:

100分考生选择题总得分:

92分

一、单选题(每题1分,共100题)

1.C语言中主函数的个数是(D)。

正确

A.2个

B.任意个

C.10个

D.1个

2.C程序中用/**/括起来的部分为(B)正确

A.输出语句

B.注释语句

C.输入语句

D.执行语句

3.C程序的基本单位是(B)正确

A.语句

B.函数

C.字符

D.程序行

4.C程序中有且只能有一个(A)正确

A.main函数

B.输出函数

C.输入函数

D.头文件

5.C程序中每个语句和数据声明的最后必须有一个(A).正确

A.分号

B.句号

C.星号

D.圆括号

6.下列有关算法的说法错误的是(D)正确

A.为解决一个问题而采取的方法和步骤就称为算法

B.计算机算法可以分为:

数值运算算法和非数值运算算法

C.算法是程序的灵魂

D.算法是程序的体现,即先有程序后有算法

7.C程序的三种基本结构是(B)。

正确

A.递归结构,循环结构,转移结构

B.顺序结构,选择结构,循环结构

C.嵌套结构,递归结构,顺序结构

D.循环结构,转移结构,顺序结构

8.若有说明语句"inta[10],*p=a;",对数组元素的正确引用是(D)错误正确答案:

C

A.a[p]

B.p[a]

C.*(p+2)

D.p+2

9.若定义inta,*p1;charb,*p2;则以下语句正确的是(B)正确

A.p1=a;

B.p1=&a;

C.p1=p2;

D.p1=&b;

10.有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是(C)。

正确

A.1

B.2

C.3

D.4

11.若有说明语句:

double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是(D)。

正确

A.*p=&a;scanf("%1f",p);

B.*p=&a;scanf("%f",p);

C.p=&a;scanf("%1f",*p);

D.p=&a;scanf("%1f",p);

12.语句int*p;说明了(C)正确

A.p是指向一维数组的指针

B.p是指向函数的指针,该函数返回一int型数据

C.p是指向int型数据的指针

D.p是函数名,该函数返回一指向int型数据的指针

13.若有说明语句:

inta,b,c,*d=&c;则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是(A)正确

A.scanf("%d%d%d",&a,&b,d);

B.scanf("%d%d%d",&a,&b,&d);

C.scanf("%d%d%d",a,b,d);

D.scanf("%d%d%d",a,b,*d);

14.定义指针变量时,需要在指针变量名前加上(C)正确

A.!

B.@

C.*

D.&

15.若有以下定义inta[10],*p=a;则p+5表示(A)正确

A.元素a[5]的地址

B.元素a[5]的值

C.元素a[6]的地址

D.元素a[6]的值

16.下列不正确的转义字符是(D)。

错误正确答案:

C

A.\\'

B.\"

C.074'

D.\0'

17.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符(C)。

正确

A.必须为字母

B.必须为下划线

C.必须为字母或下划线

D.可以是字母,数字和下划线中任一字符

18.以下选项中不属于C语言的类型的是(D)。

正确

A.signedshortint

B.unsignedlongint

C.unsignedint

D.longshort

19.在C语言中,合法的长整形常数是(A)。

错误正确答案:

B

A.3452

B.0L

C.3553%

D.-3452

20.有如下说明和语句

inta=5;

a++;

此处表达式a++的值是(C)

正确

A.7

B.6

C.5

D.4

21.若有inta;floatb;doublec;scanf(“%2d%3f%2lf”,&a,&b,&c);当输入456321475223时,执行printf(“%d,%.0f,%.0lf”,a,b,c);时,输出为(D)正确

A.23,257,41

B.45,632.0,14.0

C.45,632.,14

D.45,632,14

22.以下能正确定义变量a、b和c并为其赋值的语句是(D)正确

A.inta=5;b=5;c=5;

B.inta,b,c=5;

C.a=5,b=5,c=5;

D.inta=5,b=5,c=5;

23.已知字母"A"的ASCII码为十进制的65,下面程序输出正确的是(A)

main()

{

charch1,ch2;

ch1='A'+'5'-'3';

ch2='A'+'6'-'3';

printf("%d,%c\n",ch1,ch2);

}

正确

A.67,D

B.B,C

C.不确定的值

D.C,D

24.以下程序的输出结果(B)。

#include

#include

main()

{

chara[100]={‘a’,’b’,’c’,’d’,’e’,’f’,’h’,’i’,’j’};

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

}

正确

A.6

B.9

C.11

D.不能正常输出

25.设已定义x为double类型变量

x=213.82631;

printf("%-6.2e\n",x);

则以上语句(C)。

正确

A.输出格式描述符的域宽不够,不能输出

B.输出为21.38e+01

C.输出为2.14e+002

D.输出为-2.14e2

26.下述程序段的输出结果是(A)

{inta=5;

a%=7;

printf(“%d,”,A.;

a+=a*=a-=a*=2;

printf(“%d”,A);}

正确

A.5,0

B.0,0

C.5,12

D.0,12

27.C语言赋值语句不正确的是(D)。

正确

A.x=1,y=2;

B.x++;

C.x=y=5;

D.y=int(x);

28.阅读以下程序:

#include

voidmain()

{intx;

for(x=5;x>0;x--)

if(x--<5)printf("%d,",x);

elseprintf("%d,",x++);}

程序运行后的输出结果是(B)。

正确

A.4,3,2

B.4,3,1,

C.5,4,2

D.5,3,1,

29.定义a为整型,下列表达式a=3>6的运行后,a的值为(A)正确

A.0

B.1

C.3

D.表达式错误

30.下列程序的输出结果是(D)

main()

{inta=4;

a*=a+=6;

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

正确

A.40

B.60

C.80

D.100

31.以下程序的输出结果是(A)。

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

printf("%d\n",d);}正确

A.1

B.0

C.非0数

D.-1

32.设有定义:

inta=1,b=2,c=3;以下语句中与其他三个不同的是(C)正确

A.if(a>b)c=a,a=b,b=c;

B.if(a>b){c=a,a=b,b=c;}

C.if(a>b)c=a;a=b;b=c;

D.if(a>b){c=a;a=b;b=c;}

33.若变量已经正确说明,则以下程序段(A)

#include

voidmain(){

inta=8;

intb=6;

printf(a>b?

"&&&a=%d":

"!

!

!

b=%d",a,b);

}正确

A.输出为:

&&&a=8

B.输出为:

!

!

!

b=8

C.输出为:

&&&a=8!

!

!

b=8

D.全部错误

34.有以下程序,若输入为字符s,则程序运行结果为(A)

#include”stdio.h”

main()

{

charch;

ch=getchar();

switch(ch)

{case’a’:

printf(”a=%c\n”,ch);

default:

printf(”end!

\n”);

case’b’:

printf(”b=%c\n”,ch);

case’c’:

printf(”c=%c\n”,ch);

}

}正确

A.end!

<换行>b=s<换行>c=s

B.end!

C.有语法错误

D.a=send!

35.下列程序段的执行结果(A)inta=8,b=1;

if(a>=5)printf("%d",b+a);

elseif(a>b)printf("%d",a-b);

elseprintf("%d",b);正确

A.9

B.7

C.1

D.编译错误

36.当a=1,b=2,c=3,d=4时,执行下面程序段后,x的值是(A)

if(a

if(c

else

if(a

if(b

elsex=3;

elsex=6;

elsex=7;正确

A.1

B.6

C.3

D.2

37.C语言中数组下标的下限是(B)。

正确

A.1

B.0

C.视具体情况而定

D.无固定下限

38.设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为(C)正确

A.不定值

B.4

C.3

D.1

39.两次运行下面程序,如果从键盘分别输入3和2,则输出结果是(A)

#include

voidmain(){

intx;

scanf("%d",&x);

if(x++>2)printf("%d",x);

elseprintf("%d\n",x--);

}正确

A.4和3

B.4和2

C.4和1

D.3和2

40.有如下程序

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf("%f\n",y);

}

该程序的输出结果是(C)正确

A.0.000000

B.0.250000

C.0.500000

D.1.000000

41.在嵌套使用if语句时,C语言规定else总是(B)错误正确答案:

C

A.和之前与其具有相同缩进位置的if配对

B.和之前与其最近的if配对

C.和之前与其最近的且不带else的if配对

D.和之前的第一个if配对

42.有以下程序

main()

{inti=1,j=1,k=2;

if((j++||k++)&&i++)

printf("%d,%d,%d\n",i,j,k);

}

执行后输出结果是(C)正确

A.1,1,2

B.2,2,1

C.2,2,2

D.2,2,3

43.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。

if(x>y)z=x;x=y;y=z;正确

A.x=10,y=20,z=30

B.x=20,y=30,z=30

C.x=20,y=30,z=10

D.x=20,y=30,z=20

44.要用C语言表示数学关系式a≥b≥c,正确的表达式是(B)。

错误正确答案:

D

A.a>=b>=c

B.(a>=b)&(b>=c)

C.(a>=b)||(b>=c)

D.(a>=b)&&(b>=c)

45.设变量x和y均正确定义并赋值,以if语句中,在编译时将产生错误信息的是(C)正确

A.if(x++)

B.if(x>y&&y!

=0);

C.if(x>y)x--elsey++;

D.if(y<0){;}elsex++;

46.以下程序段的输出结果为(B)。

for(i=4;i>1;i--)

for(j=1;j

putchar('#');正确

A.无

B.######

C.#

D.###

47.执行下列程序后,i的值是(C)。

inti,x;

for(i=1,x=1;i<20;i++)

{if(x>=10)break;

if(x%2==1)

{x+=5;continue;}

x-=3;

}正确

A.4

B.5

C.6

D.7

48.设有以下程序段

intx=0,s=0;

while(!

x!

=0)s+=++x;

printf("%d",s);

则(B)。

正确

A.运行程序段后输出0

B.运行程序段后输出1

C.程序段中的控制表达式是非法的

D.程序段执行无限次

49.若i为整型变量,则以下循环执行次数是(D).for(i=2;i==0;)printf("%d",i--);错误正确答案:

B

A.无限次

B.0次

C.1次

D.2次

50.假定所有变量均已正确定义,下列程序段运行后x的值为(B)。

k1=1;k2=2;k3=3;x=15;if(!

k1)x--;elseif(k2)if(k3)x=4;elsex=3;正确

A.14

B.4

C.15

D.3

51.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是(A)。

for(i=5;i;i--)

for(j=0;j<4;j++)

{…}正确

A.20

B.24

C.25

D.30

52.下列保留字中用于构成循环结构的是(B)。

正确

A.if

B.while

C.switch

D.default

53.阅读下面程序,它的运行结果是(A)

voidmain()

{

inti,j,a=0;

for(i=0;i<2;i++)

{

for(j=0;j<4;j++)

{

if(j%2)break;

a++;

}

a++;

}

printf("%d\n",a);

}正确

A.4

B.5

C.6

D.7

54.阅读下面程序,得知其运行结果是(A)

#include"stdio.h"

voidmain()

{

inti;

for(i=1;i<=5;i++)

{

if(i%2)printf("*");

elsecontinue;

printf("#");

}

printf("$\n");

}正确

A.*#*#*#$

B.#*#*#*$

C.*#*#$

D.#*#*$

55.下面程序运行结果是(B)

#include

voidmain()

{inti;

for(i=1;i<=5;i++)

switch(i%5)

{

case0:

printf("*");break;

case1:

printf("#");break;

default:

printf("\n");

case2:

printf("&");

}

}正确

A.#&&&*

B.#&<换行>&<换行>&*

C.#<换行>&<换行>&<换行>&<换行>*

D.#&<换行><换行>*

56.程序运行的结果是(A)

main()

{intn=0;

while(n++<=1)

printf("%d\t",n);

}正确

A.12

B.01

C.1

D.11

57.运行以下程序段的结果是(A)

a=1;b=2;c=2;

while(a

printf("%d,%d,%d",a,b,c);正确

A.1,2,0

B.2,1,0

C.1,2,1

D.2,1,1

58.下面程序段(D)

for(t=1;t<=100;t++)

{

scanf("%d",&x);

if(x<0)continue;

printf("%3d",t);

}正确

A.当x<0时整个循环结束

B.x>=0时什么也不输出

C.printf函数永远也不执行

D.最多允许输出100个非负整数

59.下面程序的输出是(D)。

main()

{

char*s=〞12134211〞;

intk,v1=0,v2=0,v3=0,v4=0;

for(k=0;s[k];k++)

switch(s[k])

{

default:

v4++;

case1:

v1++;

case2:

v2++;

case3:

v3++;

}

printf(〞v1=%d,v2=%d,v3=%d,v4=%d\n〞,v1,v2,v3,v4);

}正确

A.v1=4,v2=2,v3=1,v4=1

B.v1=4,v2=9,v3=3,v4=1

C.v1=5,v2=8,v3=6,v4=1

D.v1=8,v2=8,v3=8,v4=8

60.执行语句for(i=1;i++<4;);后变量i的值是(C)正确

A.3

B.4

C.5

D.不定

61.标有/**/的语句的执行次数是(C)。

inty,i;

for(i=0;i<20;i++)

{if(i%2==0)continue;

y+=i;/**/

}正确

A.20

B.19

C.10

D.9

62.阅读下列程序:

main()

{intn[3],i,j,k;

for(i=0;i〈3;i++〉n[i]=0;

k=2;

for(i=0;i〈k;i++〉

for(j=0;j〈k;j++〉n[j]=n[i]+1;

printf("%d\n",n[1]);}

程序运行后输出结果是(D)。

正确

A.2

B.1

C.0

D.3

63.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空。

(B)

#include

main()

{inta,b,t;

scanf("%d%d",&a,&b);

while(_______)

{if(a>b)

{t=a;a=b;b=t;}

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

scanf("%d%d",&a,&b);

}

}正确

A.!

a=b

B.a!

=b

C.a==b

D.a=b

64.以下程序的运行结果为(C)

#include"stdio.h"

main()

{intm,n;

for(m=0,n=10;m

printf("%d,%d\n",m,n);}正确

A.6,7

B.7,6

C.9,7

D.7,9

65.对以下for循环,叙述正确的是(C)。

for(x=0,y=0;(y!

=123)&&(x<4);x++,y++);正确

A.是无限循环

B.循环次数不定

C.执行了4次

D.执行了3次

66.对以下说明语句的正确理解是(B)。

inta[10]={6,7,8,9,10};

正确

A.将5个初值依次赋给a[1]至a[5]

B.将5个初值依次赋给a[0]至a[4]

C.将5个初值依次赋给a[6]至a[10]

D.因为数组长度与初值的个数不相同,所以此语句不正确

67.合法的数组定义是(D)正确

A.inta[]=”string”;

B.inta[5]={0,1,2,3,4,5};

C.chara=”string”;

D.chara[]={0,1,2,3,4,5};

68.合法的数组定义是(D)正确

A.inta[]=”string”;

B.inta[5]={0,1,2,3,4,5};

C.chara=”string”;

D.chara[]={0,1,2,3,4,5};

69.执行下面的程序段后,变量k中的值为(A)。

intk=3,s[2];

s[0]=k;k=s[1]*10;正确

A.不定值

B.33

C.30

D.10

70.二维数组a有m行n列,则在a[i][j]之前的元素个数为(B)。

正确

A.j*n+i

B.i*n+j

C.i*n+j-1

D.i*n+j+1

71.合法的数组说明语句是(D)。

正确

A.inta[]=”string”;

B.inta[5]={0,1,2,3,4,5};

C.chara=”string”;

D.chara[]={0,1,2,3,4,5};

72.以下语句正确的是(D)。

正确

A.intx[2]={6,7,9};

B.intx[3]={{1},{6},{7}};

C.intx[];

D.intx[4]={6,7,8,9};

73.有以下程序

main()

{chars[]={"aeiou"},*ps;

ps=s;printf("%c\n",*ps+4);}

程序运行后的输出结果是(B)。

正确

A.a

B.e

C.u

D.元素s[4]的地址

74.以下数组定义中不正确的是(D)。

正确

A.inta[2][3];

B.intb[][3]={0,1,2,3};

C.intc[100][100]={0};

D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};

75.设有语句

staticcharstr[10]={“china”};

printf(“%d”,strlen(str));

则输出结果是(B)

正确

A.10

B.5

C.china

D.6

76.执行以下程序段后,s的值为(B)。

staticcharch[]=“623”;inta,s=0;

for(a=0;ch[a]>=‘0’&&ch[a]<=‘9’;a++)s=10*s+ch[a]-‘0’;正确

A.-4705

B.623

C.600

D.326

77.以下语句中存在语法错误的是(B)。

错误正确答案:

A

A.charss[6][20];ss[1]="right?

";

B.charss[][20]={"right?

"};

C.char*ss[6]

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

当前位置:首页 > 工程科技 > 材料科学

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

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