大学C语言程序设计考试参考题Word下载.docx

上传人:b****4 文档编号:17605922 上传时间:2022-12-07 格式:DOCX 页数:17 大小:22.66KB
下载 相关 举报
大学C语言程序设计考试参考题Word下载.docx_第1页
第1页 / 共17页
大学C语言程序设计考试参考题Word下载.docx_第2页
第2页 / 共17页
大学C语言程序设计考试参考题Word下载.docx_第3页
第3页 / 共17页
大学C语言程序设计考试参考题Word下载.docx_第4页
第4页 / 共17页
大学C语言程序设计考试参考题Word下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

大学C语言程序设计考试参考题Word下载.docx

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

大学C语言程序设计考试参考题Word下载.docx

a,&

b,&

c);

,为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是(D)

A.132(回车)B.1,3,2(回车)

C.a=1b=3c=2(回车)D.a=1,b=3,c=2(回车)

12.阅读以下程序,当输入数据的形式为25,13,10<

CR>

时,正确的输入结果为(D)

main()

{

intx,y,z;

scanf("

%d%d,%d"

&

printf("

x+y+z=%d\n"

x+y+z);

}

A.x+y+z=48B.x+y+z=35C.x+z=35D.不确定值

13.一直ch是字符型变量,下面不正确的赋值语句是(A)

A.ch='

a+b'

;

B.ch='

\0'

C.ch='

7'

+'

9'

D.ch=5+9;

14.执行下列程序片段时输出结果是(C)

intx=13,y=5;

%d,x%=(y/=2));

A.3B.2C.1D.0

15.若运行时输入:

12345678↙,则下列程序运行结果为(A)

main()

inta,b;

%2d%2d%3d"

b);

%d\n"

a+b);

A.46B.579C.5690D.出错

16.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是(C)

A.(x>

=1)&

(x<

=10)&

(x>

=200)&

=210)

B.(x>

=1)‖(x<

=10)‖(x>

=200)‖(x<

C.(x>

D.(x>

=200)‖(x<

17.若希望当A的值为奇数时,表达式的值为“真”;

A的值为偶数时,表达的值为“假”,则以下不能满足的表达式是(C)

A.A%2==1B.!

(A%2==0)

C.!

(A%2)D.A%2

18.判断char型变量c1是否为小写字母,正确的表达式为(D)

A.'

a'

<

=c1<

='

z'

B.(c1>

=a)&

(c1<

=z)

C.('

>

=c1)‖('

=c1)D.(c1>

)&

19.设有inta=1,b=2,c=3,d=4,m=3,n=2,执行(m=a>

b)&

(n=c>

d)后n的值为(B)

A.1B.2C.3D.4

20.执行以下语句后a的值为(C)

inta,b,c;

a=b=c=1;

++a‖++b&

++c;

A.错误B.0C.2D.1

21.下面有关for循环的正确描述是(D)

A.for循环只能用于循环次数已经确定的情况

B.for循环是限制性循环体语句,后判断表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

22.对for(表达式1;

表达式3)可理解为(B)

A.for(表达式1;

0;

表达式3)B.for(表达式1;

1;

表达式3)

C.for(表达式1;

表达式1;

表达式3)D.for(表达式1;

表达式3;

23.以下正确的描述是(B)

A.continue语句的作用是结束整个循环的执行

B.只能再循环体内和switch与具体内使用break语句

C.再循环体内使用break语句或continue语句的作用相同

D.从多层循环嵌套中退出时,只能使用goto语句

24.以下程序的循环次数是(B)

for(i=2;

i==0;

)printf("

%d,i--)

A.无限次B.0次C.1次D.2次

25.若有如下语句

intx=3;

do{printf("

%d\n,x==2);

}while(!

(--x));

则上面程序段(B)

A.输出的是1B.输出的是1和2

C.输出的是3和0D.是死循环

26.以下说法中正确的是(B)

A.一个函数在它的函数体内调用它自身称为嵌套调用

B.一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数

C.一个函数在它的函数体内调用其它函数称为递归调用,这种函数称为递归函数

D.一个函数在它的函数体内不能调用自身

27.在一个源文件中定义的全局变量的作用域为(D)

A.本文件的全部范围

B.本程序的全部范围

C.本函数的全部范围

D.从定义该变量的位置开始至本文件结束

28.一下不正确的描述为(D)

A.在函数之外定义的变量为外部变量,外部变量是全局变量

B.在函数中既可以使用本函数中的局部变量,又可以使用全局变量

C.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变了不起作用

D.以上都不正确

29.以下叙述中不正确的是(D)

A.在不同的函数中可以使用相同名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

30.下列叙述错误的是(B)

A.对于用户自己定义的函数,在使用前有时可以加以说明

B.说明函数时必须明确其返回值类型,不需要确定其参数的类型

C.函数可以返回一个值,也可以什么字也不返回

D.空函数不能完成任何操作,所以在程序设计中没有用处

31.下列叙述中正确的是(A)

A.局部变量说明static存储数,其生存期间得到延长

B.全局变量说明static存储类,其作用域将被扩大

C.人和存储类的变量再未付初值时,其值都是不确定的

D.形参可以使用的存储类说明符与局部变量完全相同

32.下列说法中正确的是(C)

A.形参是全局变量,其作用范围仅限于函数内部

B.形参是全局变量,其作用范围从定义只出到文件结束

C.形参是局部变量,其作用范围仅限于函数内部

D.形参是局部变量,其作用范围从定义只出到文件结束

33.当全局变量与函数内部的局部变量同名时,则在函数内部(B)

A.全局变量有效B.局部变量有效

C.全局变量和局部变量都有效D.全局变量和局部变量都无效

34.一下能对二维数组a进行正确初始化的语句是(B)

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

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

C.inta[2][4]={{1,2,3},{4,5},{6}};

D.inta[][3]={{1,0,1},{},{1,1}};

35.若说明inta[3][4]={0};

则下面正确的叙述是(D)

A.只有元素a[0][0]可得到初值0

B.此说明与语句不正确

C.数组a中个元素都可得到初值,但气质不一定为0

D.数组a中各元素都可以得到初值0

36.若说明inta[][4]={0,0};

则下面不正确的叙述是(D)

A.数组a的每个元素都可得到初值0

B.二维数组a中第一位大小为1

C.因为二维数组a中第二位的值除以初值个数的商为1,故数组a的行数为1

D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值

37.若二维数组a有m列,则计算任意元素a[i][j]在数组中位置的公式为(D)(设a[0][0]位于数组的第一个位置上)

A.i*m+jB.j*m+IC.i*m+j-1D.i*m+j+1

38.若有说明inta[][3]={1,2,3,4,5,6,7};

,则数组a第一位大小是(A)

A.2B.3C.4D.无确定值

39.设有数组定义chararray[]="

China"

,则数组array所占的空间为(C)

A.4个字节B.5个字节C.6个字节D.7个字节

40.下面是对s的初始化,其中不正确的是(D)

A.chars[5]={"

abc"

}B.chars[5]={'

a'

'

b'

c'

};

C.chars[5]="

"

D.chars[5]="

abcdef"

41.对两个数组a和b进行如下初始化:

chara[]="

ABCDEF"

charb[]={'

A'

B'

C'

D'

E'

F'

则以下叙述正确的是(D)

A.a与b数组完全相同B.a与b长度相同

C.a和b中都存放字符串D.a数组比b数组长度长

42.变量的指针,其含义是指该变量的(B)

A.值B.地址C.名D.一个标志

43.若有语句inta=4,*point=&

a;

,下面军代表表地址的一组选项是(D)

A.a,point,*&

aB.&

*a,&

a,*point

C.*point,point,&

aD.&

*point,point

44.若已定义chars[10];

,则在下面表达式中不表示s[1]的地址的是(B)

A.s+1B.s++C.&

s[0]+1D.&

s[1]

45.下列程序的运行结果是(B)

#include<

stdio.h>

inta,b;

for(a=1,b=1;

a<

=100;

a++)

if(b>

=20)break;

if(b%3==1)

b+=3;

continue;

b-=5

printf("

a);

A.7B.8C.9D.10

46.下列程序的运行结果是(A)

#include"

stdio.h"

inti;

for(i=1;

i<

=5;

i++)

if(i%2)printf("

*"

);

elsecontinue;

#"

Printf("

$\n"

A.*#*#*#$B.#*#*#*$C.*#*#$D.#*#*$

47.下列程序的运行结果是(A)

inti,j,a=0;

for(i=0;

2;

for(j=0;

j<

=4;

j++)

if(j%2)break;

a++;

}

a++

}

Printf("

A.4B.5C.6D.7

二.阅读程序5*6'

1.下列程序的运行结果是2,0,0

voidmain()

inta=-1,b=3,c=3;

ints=0,w=0,t=0;

if(c>

0)s=a+b;

if(a<

=0)

0)

if(c<

elseif(c>

0)w=a-b;

elset=c;

%d,%d,%d"

s,w,t);

2.下列程序的运行结果是#8

inta=2,b=7,c=5;

switch(a>

case1:

switch(b<

@"

break;

case2:

!

case0:

switch(c=5)

default:

3.下列程序的运行结果是-850,2,0

{

inti,j,row,column,m;

intarray[3][3]={{100,200,300},{28,72,-30}{-850,2,6}};

m=array[0][0];

for(i=o;

3;

if(array[i][j]<

m)

m=array[i][j];

row=I;

column=j;

%d,%d,%d\n"

m,row,column);

3.下列程序的运行结果是sum=6

inta[3][3]={1,3,5,7,9,11,13,15,17};

inti,j,sum=0;

for(i=0;

{a[i][j]=i+j;

If(i==j)sum=sum+a[i][j];

\nsum=%d"

sum);

10000

01000

4.下列程序的运行结果是00100

00010

00001

inta[6][6],i,j;

for(i=1;

6;

for(j=1;

a[i][j]=(i/j)*(j/i);

%2d"

a[i][j]);

}

5.下列程序的运行结果是5,6

#include<

intt(intx,inty,intcp,intdp)

cp=x*x+y*y;

dp=x*x-y*y;

main()

{

inta=4,b=3,c=5,d=6;

t(a,b,c,d);

%d,%d\n"

c,d);

i=7,j=6,x=7;

6.下列程序的运行结果是i=2,j=7,x=5;

inti=2,x=5,j=7;

fun(j,6);

i=%d;

j=%d;

x=%d\n"

I,j,x);

fun(inti,inty)

intx=7;

x=%d;

7.下列程序的运行结果是gcd=12

gcd(intm,intn)

if(m==n)returnm;

elseif(m>

n)returngcd(m-n,n);

elsereturngcd(m,n-m);

gcd=%d\n"

gcd(24,36)

8.下列程序的运行结果是14

longfun(intn)

longs;

if(n==1‖n==2)s=2;

elses=n+fun(n-1);

returns;

voidmain()

%d\n"

fun(5));

三.程序填空5*2'

1.下列程序用来对从键盘上输入的两个字符串进行比较,然后输入两个字符串中第一个不相同字符的ASCII码之差。

例如:

输入的两个字符串分别为abcdef和abceef,则输出为-1。

请填空。

string.h>

charstr[100],str2[100],c;

inti,s;

\ninputstring1:

\n"

gets(str1);

\ninputstring2:

gets(str2);

i=0;

while((str1[i]==str2[i]&

(str1[i]!

='

\0'

i++

s=str1[i]-str2[i]

s);

2.以下程序的功能是:

从键盘上输入若干个学生的成绩,统计计算出平均成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。

floatx[1000],sum=0.0,ave,a;

intn=0,I

Entermark:

scanf("

%f"

&

a);

while(a>

=0.0&

n<

1000)

sum+=a

x[n]=a

n++;

ave=sum/n

Output:

ave=%f\n"

ave);

for(I=0;

I<

n;

I++)

if(x[I]ave)printf("

%f\n"

x[I]);

3.下列程序的功能是求3个变量的最小公倍数,请填空。

longsp(inti)

{staticlongk=1;

k=k*i

returnk;

intn,I,scanf("

%d"

n);

i<

=n;

i,sp(i))

4.下列程序的功能失求3个变量的最小公倍数,请填空。

max(intx,inty,intz)

if(x>

y&

x>

z)returnx;

elseif(y>

=x&

y>

z)returny;

elsereturnz;

intx,y,z,s,i=1,j;

%d%d%d,&

s=max(x,y,z)

while

(1)

j=i*s;

if(j%x==0&

j%y==0&

j%z==0)break;

i++;

j);

四.程序代码2*15'

13.编一程序,将两个字符串连接起来,不要strcat函数。

编写程序如下:

#include"

stdio.h"

main()

inti,j;

charstr1[100],str2[100],str3[201];

str1[i]!

str3[i]=str1[i];

for(j=0;

str2[j]!

str3[j+i]=str2[j];

%s\n\n%s\n\n%s\n\n"

str1,str2,str3);

getch();

14.编一个程序,将两个字符串S1和S2比较,如果S1>

S2,输出一个正数;

S1=S2,输出0;

S1<

S2,输出一个负数。

不要用strcpy函数。

两个字符串用gets函数读入。

输出的正数或负数的绝对值应是相比较的两个字符串相对应字符的ASCII码的差值。

例如,’A’与’C’相比,由于’A’<

’C’,应输出负数,由于’A’与’C’的码差值为2,因此应输出"

-2"

同理:

And"

和"

Aid"

比较,根据第2个字符比较结果,’n’比’i’大5,因此应输出"

5"

#include<

inti,resu;

chars1[100],s2[100];

\ninputstring1:

gets(s1);

\nInputstring2:

gets(s2);

while(s1[i]==s2[i]&

s1[i]!

0'

if(s1[i]=='

s2[i]=='

resu=0;

else

resu=s1[i]-s2[i];

\nresult:

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

当前位置:首页 > 初中教育 > 语文

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

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