C试题库Word文档格式.docx

上传人:b****1 文档编号:1556058 上传时间:2023-04-30 格式:DOCX 页数:49 大小:38.25KB
下载 相关 举报
C试题库Word文档格式.docx_第1页
第1页 / 共49页
C试题库Word文档格式.docx_第2页
第2页 / 共49页
C试题库Word文档格式.docx_第3页
第3页 / 共49页
C试题库Word文档格式.docx_第4页
第4页 / 共49页
C试题库Word文档格式.docx_第5页
第5页 / 共49页
C试题库Word文档格式.docx_第6页
第6页 / 共49页
C试题库Word文档格式.docx_第7页
第7页 / 共49页
C试题库Word文档格式.docx_第8页
第8页 / 共49页
C试题库Word文档格式.docx_第9页
第9页 / 共49页
C试题库Word文档格式.docx_第10页
第10页 / 共49页
C试题库Word文档格式.docx_第11页
第11页 / 共49页
C试题库Word文档格式.docx_第12页
第12页 / 共49页
C试题库Word文档格式.docx_第13页
第13页 / 共49页
C试题库Word文档格式.docx_第14页
第14页 / 共49页
C试题库Word文档格式.docx_第15页
第15页 / 共49页
C试题库Word文档格式.docx_第16页
第16页 / 共49页
C试题库Word文档格式.docx_第17页
第17页 / 共49页
C试题库Word文档格式.docx_第18页
第18页 / 共49页
C试题库Word文档格式.docx_第19页
第19页 / 共49页
C试题库Word文档格式.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C试题库Word文档格式.docx

《C试题库Word文档格式.docx》由会员分享,可在线阅读,更多相关《C试题库Word文档格式.docx(49页珍藏版)》请在冰点文库上搜索。

C试题库Word文档格式.docx

t'

r'

i'

n'

g'

};

C、charstr[10];

str="

D、charstr[7]={'

’\0’};

14.对于以下结构定义,++p->

str中的++加在_____。

struct{

intlen;

char*str;

}*p;

A、指针str上B、指针p上C、str指的内容上D、以上均不是

15.对于如下说明,语法和语义都正确的赋值是_____。

intc,*s,a[]={1,3,5};

A、c=*s;

B、s[0]=a[0];

C、s=&

a[1];

D、c=a;

二、填空题(每小题2分,共20分)

1.写出下列程序段的输出结果。

floatx1,x2;

x1=3/2;

x2=x1/2;

%d,%.1f"

(int)x1,x2);

2.表达式(7<

<

1>

>

2^2)的值是_______。

3.写出下列程序段的输出结果。

#defineA10

#defineB(A<

A+2)-2

B*2);

4.写出判断字符变量c是英文字母的表达式。

5.写出下列程序段的输出结果。

intk,x;

for(k=0,x=0;

k<

=9&

x!

=10;

k++)

x+=2;

%d,%d"

k,x);

6.写出下列程序段的输出结果。

printf(“%d,%d”,NULL,EOF);

7.对于以下递归函数f,调用f(3)的返回值是_____。

f(intn)

{return((n>

0)?

2*f(n-1)+f(n-2):

-1);

}

8.写出下列程序段的输出结果。

charstr[]="

hello\tworld\n"

;

%d,%c\n"

sizeof(str),*(str+10));

9.输入12345#后,写出下列程序的输出结果。

voidmain()

{charc;

for(c=getchar();

getchar()!

=’#’;

c=getchar())

putchar(c);

10.执行程序find–nxouldtext.txt时,*++argv[1]的值是_______。

三、程序阅读题(每题5分,共20分)

1.若输入3123<

回车>

则以下程序的输出结果是_______。

#include"

stdio.h"

{inti,j,n,a[10];

scanf("

&

n);

for(i=0;

i<

n;

i++)

&

a[i]);

i++)

for(j=0;

j<

j++)

printf("

%d,"

a[(i+j)%n]);

2.若输入89762425981116354<

#defineN10

main()

{

intx[N],y1[N],y2[N];

inti,j,n1,n2,t,p;

n1=n2=0;

for(i=0;

i<

N;

i++){

scanf(“%d”,&

x[i]);

if(x[i]%2==0)y1[n1++]=x[i];

elsey2[n2++]=x[i];

for(i=1;

n1;

for(j=0;

n1-1;

if(y1[j]>

y1[j+1]){

t=y1[j];

y1[j]=y1[j+1];

y1[j+1]=t;

}

n2-1;

i++){

p=i;

for(j=i+1;

n2;

j++)

if(y2[p]<

y2[j])p=j;

if(p!

=i){

t=y2[i];

y2[i]=y2[p];

y2[p]=t;

i++)printf("

y1[i]);

y2[i]);

3.以下程序的输出结果是_______。

#include<

stdio.h>

intz;

voidp(int*x,inty)

{++*x;

y--;

z=*x+y+z;

%d,%d,%d#"

*x,y,z);

}

voidmain()

{intx=1,y=5,z=9;

p(&

x,y);

x,y,z);

4.若输入-6+15*3/5=<

#include<

stdio.h>

intm=0,sum=0;

charc,oldc='

+'

do{

c=getchar();

if(c<

='

9'

c>

0'

)m=10*m+c-'

else{

if(oldc=='

)sum+=m;

elsesum-=m;

m=0;

oldc=c;

sum);

}while(c!

);

四、程序填空题(每空2分,共20分)

1.下列程序的功能是创建单向链表。

alloc.h>

structlink{

charname[10];

intmark;

structlink*next;

};

voidinsert(char*,int);

structlink*head=NULL;

{

charname[10];

structlink*t;

while

(1){

scanf("

%s%d"

name,&

mark);

if(strcmp(name,"

#"

)==0)break;

______

(1)_______;

for(t=head;

______

(2)_______)

printf("

%s>

:

%d\n"

t->

name,t->

voidinsert(char*name,intmark)

structlink*p;

p=______(3)_______;

strcpy(p->

name,name);

p->

mark=mark;

______(4)_______;

if(head!

=NULL)______(5)_______;

head=p;

2.prog.c是带命令行参数的程序。

运行progfilename时,将文本文件filename中的内容原样输出;

运行prog-ufilename时,将文本文件filename中的所有字母以大写方式输出(其余字符原样输出);

运行prog-dfilename时,只将文本文件filename中的数字输出。

#include<

ctype.h>

voidmain(intargc,char*argv[])

FILE*fp;

char*filename,ch;

inttag=0;

if(argc<

2||argc>

3){printf(“Argumenterror\n”);

return;

if(argc==3){

if(strcmp(argv[1],“-u”)==0)tag=1;

elseif(strcmp(argv[1],“-d”)==0)tag=2;

else{printf(“Optionerror\n”);

______(6)_______;

}

elsefilename=argv[1];

if(______(7)_______){

printf(“Cannotopenfile\n”);

while(______(8)_______){

ch=fgetc(fp);

if(tag==0)putchar(ch);

elseif(tag==1)______(9)_______;

elseif(______(10)_______)putchar(ch);

fclose(fp);

五、编程题(共10分,混合班学生做第2题,其他学生做第1题)

1.[程序说明](10分)

输入m和n(m≥n≥0)后,计算下列表达式的值并输出。

m!

n!

*(m-n)!

要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。

2.[程序说明](10分)

编写函数strcmp(char*s1,char*s2)。

若s1和s2均是数字串(包括+/-号),则按照十进制整数大小进行比较;

否则按照Ascii序进行比较。

s1大于/等于/小于s2时,分别输出1/0/-1。

可以直接调用atoi函数。

2000~2001学年《程序设计基础C》参考答案

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

选择

C

D

A

B

1,0.5

-3

=’a’&

c<

=’z’||c>

=’A’&

=’Z’

5,10

0,-1

-17

13,d

135

‘n’

1,2,3,2,3,1,3,1,2,

4,8,16,24,76,89,35,25,11,9,

2,4,6#2,5,9#

0,-6,9,6,1,

(1)

insert(name,mark)

(2)

t!

=NULL;

t=t->

next

(3)

(structlink*)malloc(sizeof(structlink))

(4)

p->

next=NULL

(5)

next=head

(6)

filename=argv[2]

(7)

(fp=fopen(filename,“r”))==NULL

(8)

!

feof(fp)

(9)

putchar(toupper(ch))

(10)

tag==2&

isdigit(ch)

1、

#include<

floatfact(int);

main()

{

intm,n;

floatval;

scanf(“%d%d”,&

m,&

val=fact(m)/(fact(n)*fact(m-n));

printf(“Value:

%f\n”,val);

floatfact(intn)

if(n<

=0)return1;

return(fact(n-1)*n);

{inti;

floatf=1;

=n;

f=f*i;

returnf;

2、

stdlib.h>

intstrcmp(char*s1,char*s2)

inttoken=0,val1,val2,n,i;

s1[i]!

=’\0’;

if(s1[i]!

=’+’&

s1[i]!

=’-‘&

!

isdigit(s1[i])){token=1;

break;

token&

s2[i]!

if(s2[i]!

s2[i]!

isdigit(s2[i])){token=1;

if(token==0)

val1=atoi(s1);

val2=atoi(s2);

if(val1>

val2)n=1;

elseif(val1<

val2)n=-1;

elsen=0;

returnn;

else

for(i=0;

=’\0’&

if(s1[i]>

s2[i])return1;

elseif(s1[i]<

s2[i])return–1;

if(strlen(s1)==strlen(s2))return0;

if(s[i]==‘\0’)return–1;

elsereturn1;

2000~2001学年“程序设计基础--C”试卷

一、单项选择题(每题2分,共30分)

1.______是合法的用户自定义标识符。

A、b-bB、floatC、<

fr>

D、_isw

2.若变量已正确定义并赋值,表达式______不符合C语言语法。

A、a*b/c;

B、3.14%2C、2,bD、a/b/c

3._____是不正确的字符常量。

A、'

\n'

B、'

1'

C、"

a"

D、'

\101'

4.在C程序中,用_____表示逻辑值“真”。

A、1B、非0的数C、非1的数D、大于0的数

5.______把x、y定义成float类型变量,并赋同一初值3.14。

A、floatx,y=3.14;

B、floatx,y=2*3.14;

C、floatx=3.14,y=x=3.14;

D、floatx=y=3.14;

6.若变量已正确定义,表达式______的值不是2。

A、2&

3B、1<

1C、a==2D、1^3

7.若变量已正确定义,语句“if(a>

b)k=0;

elsek=1;

”和______等价。

A、k=(a>

b)?

1:

0;

B、k=a>

b;

C、k=a<

=b;

D、a<

=b?

0:

1;

8.设变量定义为“inta,b;

”,执行下列语句时,输入_____,则a和b的值都是10。

a=%d,b=%d"

a,&

b);

A、1010B、10,10C、a=10b=10D、a=10,b=10

9.下列程序的输出结果是_____。

fun(inta,intb,intc)

{c=a*b;

main()

{intc;

fun(2,3,c);

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

A、0B、1C、6D、无法确定

10.在C程序中,若对函数类型未加说明,则函数的隐含类型为_____。

A、intB、doubleC、voidD、char

11.表达式strlen(”hello”)的值是_______。

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

12.设变量定义为“inta[4];

”,则表达式______不符合C语言语法。

A、*aB、a[0]C、aD、a++

13.设变量定义为“intx,*p=&

x;

”,则&

*p相当于_____。

A、pB、*pC、xD、*&

x

14.若变量已正确定义,____不能使指针p成为空指针。

A、p=EOFB、p=0C、p=’\0’D、p=NULL

15.对于以下的变量定义,表达式______不符合C语言语法。

structnode{

char*pk;

}x={2,"

right"

},*p=&

A、p->

pkB、*p.pkC、*p->

pkD、*x.pk

二、填空题(每题2分,共20分)

11.表示“x≥y≥z”的C表达式是_______。

12.下列程序段的输出是______。

%o\n"

010<

1^1);

13.下列程序段的输出是______。

intk;

floats;

for(k=0,s=0;

k<

7;

k++)

s+=k/2;

printf("

%d,%f\n"

k,s);

14.下列程序段的输出是_______。

#definef(a,b,x)a*x+b

%d,%d\n"

f(3,2,1),f(6,5,f(3,2,1)));

15.下列程序段的输出是_____。

{intk;

for(k=1;

5;

k++){

if(k%2)printf("

*"

elsecontinue;

16.下列程序段的输出是_____。

#include<

intf(intx)

{staticy=1;

y++;

x+=y;

returnx;

k=f(3);

%d%d\n"

k,f(k));

17.下列程序段的输出是_____。

int*p,*q,k=5,j=6;

q=&

k;

p=q;

q=&

j;

*p);

18.函数

voidf(chars[],chart[])

{intk=0;

while(s[k]=t[k])k++;

等价于

voidf(char*s,char*t)

{while(_____);

19.下列程序段的输出是_____。

char*a[2]={"

one"

"

two"

},**p=a;

%s,"

*(p++)+1);

%c\n"

**p-1);

20.用typedef定义一个文件指针FP。

三、程序阅读题(每题4分,共16分)

1.输入elephant后,下列程序的输出结果是_______。

{inti=0,k,ch;

staticintnum[5];

charalpha[]={'

a'

e'

o'

u'

},in[80];

gets(in);

while(in[i]){

for(k=0;

if(in[i]==alpha[k]){

num[k]++;

i++;

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2