admin 管理员组

文章数量: 1086019


2024年8月27日发(作者:ubuntu命令行删除文件夹)

“C程序设计及实验”试题卷

注意:答题内容必须写在答题卷上,写在本试题卷上无效

一.单项选择题(每题1分,共10分)

1. 下列运算符中,优先级最低的是_____。

A.<< B.!= C.&& D.=

2. 以下选项中不正确的整型常量是_____。

A.0xa B.010L C.10 D.1.0

3. 表达式 !(x>0||y>0) 等价于_____。

A.!(x>0)&&!(y>0) B.!x>0&&!y>0 C.!x>0||!y>0 D.!(x>0)||!(y>0)

4. 表达式______的值不是0。

A.1/2 B.!’0’ C.!EOF D.NULL

5. 若 x 是浮点型变量,表达式 (x=10/4) 的值是_____ 。

A.2.5 B.2.0 C.3 D.2

6. 若变量已正确定义并赋值,表达式______不正确。

A.a&b B.a^b C.&&x D.a, b

7. 对于变量定义 int a[10], *p=a;,表达式______是不正确的。

A.a[9] B.p[5] C.*p++ D.a++

8. 不正确的赋值或赋初值的方式是______。

A.char str[10]; str="string"; B.char str[ ]="string";

C.char *p="string"; D.char *p; p="string";

9. 设程序中不再定义和声明变量,写出在函数fun中可以使用的所有变量______。

#include

void fun(int x)

{ static int y;

……

return;

}

int z;

void main( )

{ int a,b;

fun(a);

……

}

A.x, y B.x, y, z C. a,b,y,z D.a,b,x,y,z

10. 对于变量定义 int p[5], *a[5];,表达式______是正确的。

A.p=a B.p[0]=a C.*(a+1)=p D.a[0]=2

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

1. 数组定义为 int a[2][3][4],则数组a 中有_____个数组元素。

2002-2003学年春季学期“C程序设计及实验”试题卷 第 1 页(共8页)

2. 计算下列分段函数的条件表达式是______。

1 x>0

y= 0 x=0

-1 x<0

3. 表达式 1<10<5 的值是______。

4. 表达式 ~(10<<1)&4的值是______。

5. 表达式sizeof(“hello”)的值是______。

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

int k, s;

for(k=1, s=0; k<10; k++){

if (k%2==0) continue;

s += k;

}

printf("k=%d s=%d", k, s);

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

#define MM(x,y) (x*y)

printf("%d", MM(2+3,15));

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

int k=1, s=0;

switch (k) {

case 1: s+=10;

case 2: s+=20; break;

default: s+=3;

}

printf("k=%d s=%d", k, s);

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

# include

int f( )

{ static int k;

return ++k;

}

void main( )

{ int k;

for(k=0;k<3;k++)

printf("%d#", f( ));

}

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

f (int x)

{

if(x<=1) return 1;

2002-2003学年春季学期“C程序设计及实验”试题卷 第 2 页(共8页)

else return f(x-1)+f(x-2);

}

void main( )

{ printf("%d", f(4));

}

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

int k=1, j=2, *p, *q, *t;

p=&k; q=&j;

t=p; p=q; q=t;

printf("%d, %d",*p, k);

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

int c[ ]={10, 30, 5};

int *pc;

for(pc=c; pc

printf("%d#", *pc);

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

char *st[ ]={"ONE","TWO","FOUR","K"};

printf("%s, %cn", *(st+2), **st+1);

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

#include

void p(int *x,int y)

{ ++ *x;

y=y+2;

}

void main()

{ int x=0, y=3;

p(&y, y);

printf("%d, %d", x, y);

}

15. 用typedef定义一个10个元素的字符指针数组类型CP。

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

1.

下列程序的输出结果是_______。

#include

void main( )

{

int k, x, s, t;

x=3;

s=0; t=x;

for(k=1; k<=3; k++){

2002-2003学年春季学期“C程序设计及实验”试题卷 第 3 页(共8页)

t=t*10+x;

s=s+t;

printf("%d#", s);

}

}

2.

输入7 3 0 3 0 3 1 2 9 7 6 0 <回车>后,下列程序的输出结果是_______。

#include

void main( )

{

int j, k, sub, x;

int a[5];

for(j=1; j<=2; j++){

for(k=0; k<5; k++)

scanf(“%d”, &a[k]);

scanf(“%d”, &x);

sub=-1;

for(k=0; k<5; k++)

if(a[k]==x) sub=k;

printf("%d#", sub);

}

}

3.

下列程序的输出结果是_______。

#include

void main( )

{

long number, wt, x;

x=number=10230;

wt=1;

while(x!=0){

wt=wt*10;

x=x/10;

}

wt=wt/10;

while(number!=0){

printf("%d#", number/wt);

number=number%wt;

wt=wt/10;

}

2002-2003学年春季学期“C程序设计及实验”试题卷 第 4 页(共8页)

}

4.

输入3 9 8 6 5 3 7 1 2 4 2 1 2 3 4<回车>后,下列程序的输出结果是_______。

#include "stdio.h"

void main( )

{

int flag,i,j,k,col,n,ri,a[6][6];

for(ri=1; ri<=2; ri++){

scanf("%d",&n);

for(i=0; i

for(j=0; j

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

flag=0;

for(i=0; i

col=0;

for(j=0; j

if (a[i][col]

for (k=0; k

if(a[i][col]

if(k>=n){

printf("a[%d][%d]=%d#", i, col,a[i][col]);

flag=1;

}

}

if(!flag) printf("NO#");

}

}

5.

输入how are you?<回车>后,下列程序的输出结果是_______。

#include

void main( )

{

int word;

char ch;

word=0;

while((ch=getchar())!='?'){

if(ch==' ') word=0;

else if(word==0){

word=1;

if(ch<='z'&&ch>='a')

ch=ch-'a'+'A';

2002-2003学年春季学期“C程序设计及实验”试题卷 第 5 页(共8页)

}

putchar(ch);

}

}

6.

假设文本文件中存放了下列数据:

one?two?1234?output?

文本文件中存放了下列数据:

one?two?1204?input?

下列程序的输出结果是_______。

# include

# include

void main()

{ int count;

char ch1,ch2;

FILE *f1, *f2;

if ((f1 = fopen("","r")) == NULL){

printf("Can't open file : %sn", "");

exit(0);

}

if ((f2 = fopen("","r")) == NULL){

printf("Can't open file : %sn", "");

exit(0);

}

count=0;

while (!feof(f1)||!feof(f2)){

ch1=fgetc(f1);

ch2=fgetc(f2);

if(ch1!=ch2){

printf("%c#%c#",ch1,ch2);

printf("%d#", count);

break;

}

if(ch1=='?') count++;

}

fclose(f1);

fclose(f2);

}

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

1.输入1 个正整数 n, 计算并输出 s 的前n项的和。

2002-2003学年春季学期“C程序设计及实验”试题卷 第 6 页(共8页)

s = 1/1! + 1/2! + 1/3! + ……+ 1/n!

#include

void main( )

{ int j, k, n;

float f, s;

scanf("%d", &n);

(1) ;

for (k=1 ; k<=n; k++){

(2) ;

for(j=1; (3) ; j++)

(4) ;

s=s+1.0/f;

}

printf("sum=%fn", s);

}

2.输入一个正整数n,如果它是素数,输出"YES",否则,输出"NO"(素数就是只能被1和自身整

除的正整数,1不是素数,2是素数)。

#include

#include

void main( )

{

int n;

int prime(int m);

scanf("%d", &n);

if( (5) )

printf("YESn");

else

printf("NOn");

}

int prime(int m)

{ int i,n;

if(m==1) return 0;

n=sqrt(m);

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

if( (6) ) return (7) ;

(8) ;

2002-2003学年春季学期“C程序设计及实验”试题卷 第 7 页(共8页)

}

3.请仔细阅读函数f1,然后在函数f2中填入正确的内容,使函数f1和函数f2有相同的功能。

int f1(char s[ ]) int f2(char *s)

{ int k=0; { char *ss;

while(s[k]!='0') (9) ;

k++; while(*s++!= (10) )

return k; ;

} return (11) ;

}

4.输入30位学生的姓名和成绩,输出成绩最高的学生的姓名及其成绩。

#include

struct student{

char name[10];

int score;

};

void main( )

{

int k;

struct student s[30], *ptr;

struct student *f(struct student *stud, int n);

for(k=0; k<30; k++)

scanf("%s%d", s[k].name, &s[k].score);

(12) ;

printf("%s %dn", ptr->name, ptr->score);

}

struct student *f(struct student *stud, int n)

{

struct student * pmax, *p;

(13) ;

for(p=stud; p

if(p->score > pmax->score) (14) ;

return (15) ;

}

2002-2003学年春季学期“C程序设计及实验”试题卷 第 8 页(共8页)


本文标签: 下列 输出 结果