北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx

上传人:b****6 文档编号:20502594 上传时间:2023-01-23 格式:DOCX 页数:25 大小:24.86KB
下载 相关 举报
北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx_第1页
第1页 / 共25页
北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx_第2页
第2页 / 共25页
北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx_第3页
第3页 / 共25页
北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx_第4页
第4页 / 共25页
北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx

《北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx》由会员分享,可在线阅读,更多相关《北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

北京地质大学 C语言程序设计模拟题 后附参考答案Word下载.docx

a[a[3]]

a[a[5]]

9、若有定义:

intk=7;

floata=2.5,b=4.7;

则表达式a+k%3*(int)(a+b)%2/4的值是【9】。

2.750000

2.500000

3.500000

0.000000

10、已知ch是字符型变量,下面正确的赋值语句是【10】。

ch=”\”

ch=’123’

ch=’\xff’

ch=’\08’

11、下面程序的运行结果是:

【11】。

voidmain()

{

charc=’a’;

if(‘0’<

=c<

=’9’)printf(“YES”);

elseprintf(“NO”);

}

语句有错误

NO

YESNO

YES

12、已知:

inta=4,b=5,c;

则执行表达式c=a=a>

b后,变量a的值为【12】。

5

13、以下程序的运行结果是【13】。

#include<

stdio.h>

{intx1=3,x2=1,x3=1;

if(x1=x2+x3)printf(“****”);

elseprintf(“####”);

存在语法错误

无输出结果

输出****

输出####

14、下面程序段的输出结果是【14】。

charp1[10]=“abc”,p2[]=“ABC”,str[50]=“xyz”;

strcpy(str+2,strcat(p1,p2));

printf(“%s\n”,str);

xyabcABC

zabcABC

yzabcABC

xyzabcABC

15、设有:

inta=1,b=2,c=3,d=4,m=2,n=2;

执行(m=a>

b)&

&

(n=c>

d)后n的值为【15】。

16、若已定义x和y为double类型,则表达式:

x=1,y=x+3/2的值是【16】。

2.0

2.5

17、以下程序段的输出结果为【17】。

intx=1,y=2;

voidfun1()

{x=3;

y=4;

}

voidfun2(intx,inty)

{printf(“%d,%d\n”,x,y);

{fun1();

printf(“%d,%d,”,x,y);

fun2(5,6);

3,4,5,6

1,2,5,6

1,2,3,4

3,4,1,2

18、下面程序执行时,while的循环次数是【18】。

inti=0;

while(i<

10)

if(i<

1)continue;

if(i==5)break;

i++;

10

6

死循环,不能确定次数

19、对一维数组a的说明语句中正确的是【19】。

inta(10)

intn=10;

a[n];

#defineSIZE10

inta[SIZE];

intn;

scanf(“%d”,&

n);

inta[n];

20、若调用一个函数,且此函数中没有return语句,则该函数【20】。

没有返回值

返回若干个系统默认值

能返回一个用户所希望的函数值

返回一个不确定的值

21、下列运算符中优先级最高的是【21】。

A)!

B)%C)-=D)&

22、若intj=10;

执行下列程序后,变量j的正确结果是【22】。

switch(j){

case9:

j+=1;

case10:

case11:

default:

A)10B)11

C)12D)13

23、下列程序的运行结果是【23】。

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

for(ii=0;

ii<

3,ii++)

printf(“%d”,x[ii][2-ii]);

A)1,5,9B)1,4,7

C)3,5,7D)3,6,9

24、在定义inta[10];

之后,对a的引用正确的是【24】。

A)a[10]B)a[6,3]

C)a(6)D)a[10-10]

25、在定义了a[2][3]之后,对a的引用正确的是【25】。

A)a(1,2)B)a[1,3]

C)a[1>

2][!

1]D)a[2][0]

26、设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是:

【26】

A)while循环执行10次

B)循环是无限循环

C)循环体语句一次也不执行

D)循环体语句执行一次

27、判断两个字符串s1和s2相等的正确语句是【27】。

A)if(s1=s2)B)if(s1==s2)

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

28、以下正确的字符常量的定义为【】。

A、’c’B、“cj”

C、’abc’D、’’

29、若x、y都是int型变量,且x=100,y=200,则printf(“%d”,(x,y));

的输出结果是【】。

200

100

100200

不确定

30、运行以下程序,如果从键盘输入ABCDE<

回车>

,则输出结果是【】。

intfunch(charstr[])

{

intnum=0;

while(str[num]!

=‘\0’)num++;

return(num);

voidmain()

{charstr[10];

gets(str);

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

7

31、为表示关系x>

=y>

=z,下面C语言表达式中正确的是【】。

(x>

=y)&

(y>

=z)

=y)and(y>

32、下面程序段的输出结果是【】。

intx=2,y=0,z;

x*=3+2;

printf(“%d”,x);

x*=y=z=4;

printf(“%d”,x);

840

1040

104

84

33、下列程序段的输出结果为【】。

inta=9;

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

18

B)

9

-18

-9

34、设有整型变量a的值为5,使整型变量b的值不为2的表达式【】。

b=a/5

b=6-(--a)

b=a%2

b=(a-a--,a/2)

35、语句printf(“a\bre\’hi\’y\\\bou\n”)的输出结果为【】。

a\bre\’hi\’y\\\bou

a\bre\’hi\’y\bou

re’hi’you

abre’hi’y\bou

36、设a,b,c,d均是int型变量,为了使以下程序输出为:

1234+123+12+1,正确的输入形式应当为【】。

scanf(“%4d+%3d+%2d+%1d”,&

a,&

b,&

c,&

d);

printf(“%4d+%3d+%2d+%1d”,a,b,c,d);

1234123121<

1234123412341234<

1234+1234+1234+1234<

1234+123+12+1<

37、以下程序的输出结果是【】。

voidmain()

{inta=1,b=1;

switch(a+b)

{case2:

printf("

*\n"

);

case3:

**\n"

*

**

***

38、分析以下程序,以下程序【】。

voidmain()

{intx=5,a=0,b=0;

if(x=a+b)printf(“****\n”);

elseprintf(“####\n”);

}

有语法错,不能通过编译

通过编译,但不能连接

39、假定所有变量均已正确说明,下列程序段运行后x的值是【】。

a=b=c=0;

x=35;

if(!

a)x=-1;

elseif(b);

if(c)x=3;

elsex=4;

-1

35

40、下面程序运行的结果是【】。

{inti,j,x=0;

for(i=0;

i<

2;

i++)

{x++;

for(j=0;

j<

=3;

j++)

{if(j%2)continue;

x++;

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

x=4

x=8

x=6

x=12

41、下面程序的运行结果是【】。

#include“stdio.h”

{inti,j,a=0;

{for(j=0;

4;

{if(j%2)break;

a++;

42、下面程序的运行结果是【】。

{charch[7]={“12ab56”};

inti,s=0;

ch[i]>

=‘0’&

ch[i]<

=‘9’;

i+=2)

s=10*s+ch[i]-’0’;

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

1256

12ab56

43、下面程序的运行结果是【】。

{chara[]=“morning”,t;

inti,j=0;

for(i=1;

7;

i++)

if(a[j]<

a[i])j=i;

t=a[j];

a[j]=a[7];

a[7]=a[j];

puts(a);

mogninr

mo

morning

mornin

44、以下正确的函数说明形式是【】。

doublefun(intx,inty)

doublefun(intx;

inty)

doublefun(intx,inty);

doublefun(intx,y);

45、以下程序的输出结果是【】。

voidfun(inta,intb,intc)

{a=456;

b=567;

c=678;

{intx=10,y=20,z=30;

fun(x,y,z);

printf("

%d,%d,%d"

x,y,z);

30,20,10

10,20,30

456,567,678 

678,567,456

三、程序选择题

1、下面程序是从键盘中输入学号,然后输出学号中百位数字为3的学号,输入0时结束循环,请选择填空。

{longintnum;

scanf(“%ld”,&

num);

do

{if(【1】)printf(“%ld”,num);

scanf(“%ld”,&

}while(【2】);

【1】

A)

num%100/10==3

num/10%10==3

C)

num%10/10==3

num/100%10==3

【2】

num

num==0

num>

0==0

num!

=0

2、下面程序段的运行结果是【3】。

(其中□表示空格)

charc[5]={‘a’,’b’,’\0’,’c’,’\0’};

printf(“%s”,c);

【3】

‘a’’b’

ab

ab□c

abc

3、下列程序的运行结果是【4】。

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

for(i=0;

3;

printf(“%d”,x[i][2-i]);

【4】

1,5,9

1,4,7

3,5,7

3,6,9

4.下面的程序将字符串s中的每个字符按升序插入到数组a中,请选择填空。

string.h>

{chara[20]=“cehiknqtw”;

chars[]=“bafl”;

inti,j,k;

for(k=0;

【5】;

k++)

{j=0;

while(s[k]>

=a[j]&

a[j]!

=‘\0’)j++;

for(【6】)a[i+1]=a[i];

a[j]=【7】;

【5】

s[k]!

=‘0’

s[k]==0

【6】

i=strlen(a)+k;

i>

=j;

i--

i=strlen(a);

i>

i=j;

i<

=strlen(a)+k;

i++

=strlen(a);

【7】

a[k]

s[k+1]

s[k]

s[k-1]

5.下面程序的功能是找出数组中的最大值和此元素的下标,请选择填空。

{inta[10]={4,6,8,2,0,9,23,5,67,1},k,p;

【8】;

for(k=1;

k<

10;

k++)

if(a[k]>

a[p])

【9】;

printf(”最大值=%d,下标=%d\n”,a[p],【10】);

【8】

p=a[0]

p=0

p=1

p=a(0)

【9】

p=k

a[p]=a[k]

a[k]=a[p]

k=p

【10】

k

p

a[p]

四、填空题

1、以下程序求解百钱百鸡问题,公鸡五元一只,母鸡三元一只,小鸡一元三只,用一百元买一百只鸡,且必须有公鸡、母鸡和小鸡,求解所有可能的方案。

请填空。

【1】;

n=0;

=18;

【2】)

for(j=1;

=31;

{k=【3】;

if(【4】==300)

{n++;

printf(“n=%d,cock=%d,hen=%d,chick=%d\n”,n,i,j,k);

2、以下程序段的输出结果是【5】。

intk,j,s;

for(k=2;

6;

k++,k++)

{s=1;

for(j=k;

s+=j;

3.输入一个整数10,以下程序的运行结果是【6】。

#include<

main()

{inta,e[10],c,i=0;

printf(“输入一个整数\n”);

scanf(“%d”,&

a);

while(a!

=0)

{c=sub(a);

a=a/2;

e[i]=c;

for(;

0;

i--)

printf(“%d”,e[i-1]);

sub(inta)

{intc;

c=a%2;

returnc;

4、下面的函数invert的功能是将一个字符串的内容颠倒过来.

voidinvert(charstr[])

{inti,j,【7】;

for(i=0,j=strlen(str);

【8】;

i++,j--)

{k=str[i];

str[i]=str[j];

str[j]=k;

5、在C语言中,要求对所有用到的变量,遵循先定义后【9】的原则。

6、C语言规定,可执行程序的开始执行点是【10】。

7.设floatx=2.5,y=4.7;

inta=7;

,则表达式x+a%3*(int)(x+y)%2/4的值为【11】。

8.判断变量a、b的值均不为0的逻辑表达式为【12】。

9.整型变量m的值为27,语句printf("

m=%x"

m);

的输出结果为【13】。

10.如定义语句为chara[]="

windows"

b[]="

95"

;

,语句"

%s"

strcat(a,b));

"

的输出结果为【14】。

11.inti=234,j=567;

函数printf("

%d%d\n"

i,j)的输出结果是【15】。

12.求1至100的和,程序应写成for(s=0,i=1;

【16】;

++i)s+=i;

13.定义a为长度为10的字符串,同时为字符串赋初值"

continue"

的语句为【17】。

14.已知方程ax2+bx+c=0系数a、b、c且存在两个实根,计算其中一个实根的算术表达式为【18】。

15.若s='

d'

,执行语句s=(s>

='

a'

s<

z'

)?

s-32:

s;

字符变量s的值为【19】。

16.函数change定义如下,若a=10、b=5,执行change(a,b)后a、b的值分别为【20】。

 

 

voidchange(inta,intb){intt=0;

t=a;

a=b;

b=t;

四、阅读程序题

1、以下程序的输出结果是 

#include<

intfun(intn)

intr;

if(n==1||n==2)

r=1;

else

r=fun(n-1)+fun(n-2);

returnr;

%d\n"

fun(8));

五、编程题

1.输入10个数据,用选择法对10个数由小到大排序,并输出。

2.写一个函数,用于求n个学生的平均成绩:

并设计主函数,定义一个一维数组score里面存放10个学生的成绩,输出这10位学生的平均成绩。

3.有一个3*4的矩阵,要求编写程序求出其中值最大的那个元素的值,以及所在的行号和列号。

4.写一个函数,求10个学生的平均成绩:

5.求Fibonacci数列的前40个数。

1,1,2,3,5,8,13…。

参考答案:

1、1)一个程序由一个或多个源程序文件组成。

预处理指令、全局声明、函数定义。

2)函数是C程序的主要组成部分。

3)一个函数包括两个部分:

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

当前位置:首页 > 高等教育 > 理学

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

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