您的当前位置:首页正文

C语言毕业总补考试卷.doc

2022-02-25 来源:九壹网
铜陵学院

2009届毕业生毕业总补考试卷 《C语言程序设计》考试试卷

(适用班级:非计算机专业)

得分 一、单项选择题(每小题1分,共30分)。

1. 一个C语言程序是由【

】。

A) 一个主程序和若干个子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成

2.以下运算符中,优先级最高的是【

A)->

B) — C) !=

D) &&

3. 以下算术运算符中,要求两侧均是整型的是【 】。

A) +

B) %

C) *

D) /

4. 设x是int.型变量,则表达式:x二3*5, x++, x+20的值为【 】。A) 15

B) 16

C) 36

D) 35

5. 设沪 1, b=2, c=3, d二4,则执行语句:if (aA) 1

B) 2 C) 4

D)有语法错误

6. 设一个int型数据在内存中占2个字节,则unsigned int.型数据的取值 范围是【

】。

A) 0〜255 B) 0〜32767 C) 0

〜65535

D) 0

〜2147483647

7.有以下定义和语句:

题号 二 三 四 总分 得分 int x=010, y=0xl0, z=10;

printf ( \"%d, %d, %d\" , x, y, z): 则输出结果为【 ]o A) 10, 10, 10 B) 8, 8, 10 C) 8, 10, 10 D) 8, 16, 10

8. 有输入语句:scanf ( “%d, %d, %d” , &a, &b, &c);为使变量a的值为

d

1, b为3, c为2,从键盘输入数据的正确形式应当是【 ]o A) 132〈回车〉 C) 1 3 2〈回车〉

B) 1, 3, 2〈回车〉

D) a二 1, b二3, c二2〈回车〉

9. 若i是整型变量,则以下循环执行次数是【 lo

for(i=2; i>0; i--) printf ( “%d ”,i); A)无限次

B) 0次 C) 1次

D)10. 以下能正确计算1+2+3+……+10的程序段是【

A)

do{ i=l; s=l;

B} do{ i=l; s二0;

s二s+i; s二s+i; i++; i++;

}while (i<=10);

}while (i<=10);

D) i=l; s二0; C) i=l; s=l;

do{ s二s+i;

do{ s二s+i;

i++;

i++;

}while (i<=10);

}while(i<=10);

lo

下面程序的运行结果是【 a=l; b=2; c二3;

b=t; c—; } while( ab; printf ( <<

%d, %d, %d”,a, b,

C) 1, 2, 2

D) 1

12.以下能对一维数组a进行正确初始化的是【

】。

A) 1, 2, 3

B) 2, 1, 2

B) int a[5]

二{1, 2, 3,

A) int a[5]二(0, 0, 0, 0, 0); C) int a[ ] = { };

D) int a[5] = {5*0};

13.若有说明:int a[3][4];则对a数组元素的正确引用是【 】。A) a[2][4]

B) a(l, 3) C) a[2] [0]

D) a⑵⑴

14.若有说明:int a[3][4]二{0};则下面正确的叙述是【 】。

A) 只有元素a[0] [0]可得到初值0。 B) 此说明语句不正确。

次 】。

2, 1

211.

4, 5}

C) 数组a中各元素都可得到初值,但不一定为0。 D) 数组a中每个元素都可得到初值0。

15.若二维数组a有x列,则计算元素在数组中位置的公式是(a[0] [0]的 位置是1)【 Jo A) i*x+j

B) j*x+i

C) i*x+jT

D) i*x+j+l

16•设在函数max中定义了一个局部变量a,则a的有效范围是【

】。

A) max函数。

B) 程序中所有的函数。

C) 源程序中max函数后面所有的函数。 D) 无法确定。

17. C语言中规定,函数返回值的类型是由【

】。

A) return语句中的表达式类型所决定。 B) 调用该函数时的主调函数类型所决定。 C) 调用该函数时系统临时决定。

D) 在定义该函数时所指定的函数类型所决定。 18. 下面函数调用语句含有实参的个数为【 】。

max(a, max (b, c)); A) 1

B) 2

C) 3

D) 4

19. 用指针变量对数据进行间接访问,用的运算符是【 A) +

B) -

C) &

D) *

20•设char *s二“ABCDEF” ;则指针变量s指向的字符串的长度是【A) 9

B) 5

C) 6

D) 7

21. 下面程序的运行结果是【main()

{

int a=3, b=4, c二5, max;

max=a; I if(maxmax=c;

' printf( “%d” , max);

I A) 0

B) 3

C) 4

D) 5

】。 】。

】。 电22. 下面程序的运行结果是【 main () { int y=10;

】。

do { y--; } while (y>=0); printf ( “%d”,y); }

A) -1 B) 1

C) 8

D) 0

23. 分析下面程序,从A、B、C、D四个选择项中选择一个答案:【

main () {

float a[10] ; /*第 3 行*/

int i;

for(i=0; i<=10; i++) scanf(“%d”,&a[i]); /*第 5 行*/ for(i=0;i<10; i++) a[i]二a[i]+l;

printf (“%f”, a[0]) ; /*第 7 行*/ }

A)没有错误 B)第3行有错误 C)第5行有错误 D)第7行有错误

24. 有定义:

int i, a[3][3]二{1, 2, 3, 4, 5, 6, 7, 8, 9}; 则下面语句的输出结果是【 】。for(i=0; i<3; i++) printf( a

%d ” , a[i][i]); A) 3

5 7 B) 3

6 9

0 1

5 9 D) 1

4 7

25. 设有如下函数定义: int age (int n)

{ int s; if (n=l)

s=20;

else s=age (n —1) +2; return s;

若在main()函数中有下面的语句调用上述函数,则输出结果为【 printf ( \"%d” , age (5));

A) 20

B) 24

C) 28

26.以下程序的执行结果是【 Jo

int min(int a, int b)

{ int c; c=areturn c;

}

main()

{ int a=8, b=9; printf ( \"%d” , min(a, b)); }

A) 8

B) 9

C) 17

27. 下面能正确进行字符串赋值操作的是

【 A) char s[5]={ \"abcde” };

B) char C) char *s= \"abcde\";

D) char 28. 设有以下定义和语句:

int a[3]二{3, 5, 8}, b=10, P=a;

则表达式:* (p+3)的值是【

A) 5

B) 8

C)

10

29.以下程序的输出结果是【 main() { char *str= Goodmorning^ ; str=str+4;

printf ( \"%s” , str); }

Goodmorning B) morning

A) C) m

D) ning

D) 30

D) 1

; scanf ( \"%s\" , s[5])D)无法确定

s[5]= \"abcde\"*s;

30.若有以下定义,则值为4的表达式是【 ]o

int a[6]={0, 1, 2, 3, 4, 5}, *p=a; A) a[3] B) *(a+3) C) *(p+4) D) p+4

得分

二阅读程序,写出程序运行结果(每题5分,共25分)。

1. main()

{ int i二T; printf( \"%d, }

%u” , i, i) 程序的输出结果为【

2. main()

{ int sum=l, i; for(i=l; i<=5; i++) sum=sum*i;

printf ( \"%d\" , sum); }

程序的输出结果是【

3. main()

{ int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, i, sum for(i=0; i<=2; i++)

sum+二a[i][i];

printf ( “sum=%d”,sum); }

程序的输出结果是【

4. void exchange(int x, int y)

{ int t;

t=x; x二y; y=t; }

main ()

{ int a=3, b=4;

二0;】。

】。 lo

exchange (a, b); printf ( “%d, %d” , a, b); }

程序的输出结果是【

5. main()

Jo

{ int a[6]={l, 2, 3, 4, 5, 6}, i, t, *pl二a, *p2二&a[5]; for(i=0; i<=2; i++, pl++, p2--)

{ t二*pl; *pl=*p2; *p2二t; } for(i=0; i<=5; i++) printf ( “%3d\" , a[i]); }

程序的输出结果是【

Jo

得分 三、程序填空题(每空仅限填一条语句,每空15 分)。

1.下面程序的功能是求1+2+3+ ...... +100。请填空。 main()

{ int. i, sum二0; for(i=l;【

】;

i卄)

J;

printf( “1+2+3+……+100=%d”,sum); }

2.下面程序的功能是求3个整数的最大值。请填空。 int max(int a, int b, int c) { int max; max=a;

if(max3分,共计

main()

{ int x, y, z;

scanf (“ %d%d%d”,&x, &y, &z); printf ( “max二%d”,max (x, y, z)); }

3.以下程序的功能是把两个整数进行交换,请填空。 void swap(【

{ int t;

t二*p; *p二*q; *q二t; }

main ()

{ int a=3, b=7;

printf( a

a=%d, b=%d” , a, b);

}

得分 四、程序设计题(共

30分)。

1. (7分)编程求解问题:100元买100只鸡,母鸡母鸡、公鸡各多少只?

3元1只,公鸡2元1只。问

| I

评I

2. (8分)输入3个整型数据,请编写程序,将这3个数据按从小到大的顺序输出

显示。

3. (7分)写一个判断某一整型数据是否是素数的函数fun

void fun(int data)

r

4. (8分)编写一个能够完成两个字符串连接功能的函数string_cat,该函数首 咅匕为: void

string_cat(char ^pl, char *p2)

在main函数中输入两个字符串,通过调用该函数string_cat,完成两个字符串接后产生的一个新字符串通过呃in函数血出显示。

的连接,并将连

因篇幅问题不能全部显示,请点此查看更多更全内容