您的当前位置:首页正文

南工院C语言期末考试试卷

2024-02-07 来源:我们爱旅游


南京工业职业技术学院

2011/2012 第一学期 期末试卷(A卷)

课程: C程序设计 出卷人: 考试类型: 开卷 【 】 闭卷【√】 适用班级: 电商1111/电商1121 班级 学号 姓名

(所有题目答案请写在答题纸上) 一、单项选择题(每题2分, 共60分)

1. 键盘输入为“123 ABC”<回车>时,下列程序的输出为_______。

#inclde int main( void ) {

char str[80]; gets(str); puts(str); return 0; }

A.123 ABC

B.123

C.ABC

D.无任何输出

2. 下面哪个是C语言的关键字?

A.struct _

B.gets

C.getchar

D.FILE

3. 下面哪个是c语言中合法的标识符 。

A._answer_ B.2nd_chance

C.123

D.“ABC”

4. 以下那个是c语言的关键字 。

A.long

B.printf

C.Float

D.getch

5. 若有变量定义

double x=5.0,y;

则表达式 A.7.5

y = x + 5 / 2

B.7.0

的值是 。

C.4.5

D.8.0

6. 下面哪个关键字用于返回函数值?

A.switch

B.return

C.for

D.while

A卷共8页第1页

7. 设有变量定义

int x = 1 , y = 1 , z = 1 ;

则函数调用 printf( “%d” , x + y + z ) 的输出结果为 。 A.1

B.2

C.3

D.4

8. 以下哪个不可以作为C语言的标识符?

A._123

B.#123

C.$123

D.123

9. 以下哪个不(!)可以作为C语言的运算符_______。

A.!

B.;

C.,

D.&

10. 以下哪个是合法的C语言int类型常量?

A.12345 11. 设有变量定义

int i = 4 , j = 6 , k = 9 ;

则表达式 A.1

i + j < k 的值为

B.0

C.10

D.9

B.12,345

C.1234^5

D.1234.54

12. 在C语言中,char类型数据所占内存为_____Byte。

A.1

B.2

C.4

D.8

13. 以下正确的表达式是_______。

A.25.0%5.0

B.25%5.0

C.25%5.0 D.25%5

14. 表达式 !1 的值等于_______。

A.1

B.0

C.-1

D.2

15. 以下关于if语句的错误(!)描述是 。

A.if语句不一定有else子句 B.可以用break语句结束if语句

C.if语句中必须有一对小括号——“()”

D.一条if语句中可能有两个“;”,也可能有一个“;” 16. 下面程序段的运行结果是 。

int n;

for( n = 0 ; n < 9 ; n ++ ) {

printf( \"%d\" , n ); } A.9

B.10

C.012345678 D.8

A卷共8页第2页

17. 下面条件表达式

(3>4) ?3 :4 的值是_______。 A.1

B.2

C.3

D.4

18. 以下哪个是合法的c语言int类型常量 。

A.1E5

B.0Xhh

C.093

D.234

19. 设有数组定义: char array [6]; 则表达式sizeof array的值为 。

A.5

B.6

C.7

D.8

20. 下面函数调用表达式的输出是 。

printf(\"%d\\n\A.12

B.24

C.18

D.16

21. 设有变量定义

int s[3][4] ;

那么s数组中共有 个int类型的数组元素。 A.3

B.4

C.12

D.24

22. 以下程序段的运行结果是___________。

int x=1; switch(x) {

case 1: puts(\"1\"); break; case 2: puts(\"2\"); break; case 3: puts(\"3\"); } A.1

B.2

C.3

D.123

23. 表达式 ( 3 > 2 ) ? 4 : 5

A.3

B.2

的值为 。

C.4

D.5

24. 在C语言中,字符串

A.3

B.4

\"abc\"

占 个字节。

C.5

D.6

25. C语言规定,注释应写在_______之间。

A.“{”与“}”

B.“(”与“)” D.“[”与“]”

C.“/*”与“*/”

26. 下面程序段的运行结果是 。

int n = 6 ;

A卷共8页第3页

do {

printf( \"%d\" , n ) ; n -= 3 ; }

while( n > 0 ) ; A.63

B.630

C.6

D.死循环,输出许多值

27. 执行下述程序的输出结果是什么?

#include struct AB{

int a; int b; };

int main( void ) {

struct AB ab = {5,3};

printf(\"%d\\n\" , ab.a - ab.b);

return 0; } A.3

B.5

C.8

D.2

28. 执行下述程序的输出结果是什么?

#include struct AB{

int a; int b; };

void output(struct AB * ); int main( void ) {

struct AB ab = {3,5}; output( &ab ) ; return 0; }

void output(struct AB *p ) {

printf(\"%d\\n\" , p->a + p -> b); } A.-2

B.5

C.8

D.2

A卷共8页第4页

29. 下面哪个___________标准库函数的功能是求字符串长度。

A.strcpy() C.strcmp() 30. 定义数组

double a[2][3]; 若a的值为0022FF50,那么*a的值为 。 A.0022FF5A C.0022FF51

B.0022FF50 D.0022FF52

B.strlen() D.sqrt()

二、填空题(每空1分, 共15分)

1. 预处理命令一般以 开头。 2. 如有变量定义

int a[3]={1,2,3};

则表达式“*a”的值为 。

3. c语言规定字符串的结束标志为 。

4. C语言提供了三种循环语句,即while、 和 。 5. 写出求代数表达式c5(F32)的值的c语言表达式 。(假定c和F在程序中9被定义为double类型。) 6. 设有变量定义

int a[3]={1,2};

那么该数组共有 个元素,其中a[1]的值为 。

7. 在c语言中,表达式 3/2 的值为 ,表达式 ( double ) 3 / 2 的值

为 。 8. 函数调用语句fopen(\"d:\\\\abc.txt\执行时,文件d:\\abc.txt必须 。 9. 在c语言中, break语句可以用在 和 语句中,default关键字只能用

于 语句中。 10. 设有变量定义

char s[80] = \"ABCD\" ; 那么函数调用表达式 strlen(s )

的值为 。

A卷共8页第5页

三、阅读程序回答相关问题(每空1分, 共10分)

1. 请根据注释把程序补充完整,该程序的功能是计算并输出自然数列前n项的和。

#include

(1) /*自定义函数qiu_he()的原型声明*/ int main(void) {

int n;

printf(\"请输入n的值:\"); scanf(\"%d\ if( n > 0 ) {

printf(\"自然数列前%d项的和为%d\\n\ }

system(\"PAUSE\"); return 0; }

int qiu_he( int n ) {

int he = 0 ; while( n > 0 ) {

he += n --; }

return he ; }

2. 下面程序段的运行结果是 (2) 。

#include #define X 5

#define Y (X+1) int main(void) {

printf(\"%d,%d,%d\\n\" , X , Y , Y * Y ); return 0; }

3. 下面程序段的运行结果是 (3) 。

#include int main(void) { int i , he=0 ;

for ( i = 1 ; i < 10 ; i += 2 ) {

A卷共8页第6页

he += i ; }

printf (“总和=%d\\n”,he) ; return 0; }

4. 下面程序段的运行结果是 (4) 。

#include int main(void) {

int x=1,y=1;

switch ( x ) {

case 1 : printf(\"A\") ; case 2 : printf(\"B\") ; default : printf(\"C\") ; }

printf(\" \") ;

switch ( y ) {

case 1 : printf(\"X\") ; break ; case 2 : printf(\"Y\") ; break ; default : printf(\"Z\") ; break ; }

return 0; }

5. 下面程序段的功能是:如果x小于y的值,则交换变量x、y的值。请补全空白。 int x, y ;

if ( _____(5)____ ) {

int temp ;

____(6)____; ____(7)____; ____(8)____; }

6. 以下程序输出结果是 (9) 。

#include int main(void) {

A卷共8页第7页

int n = 6 , i ;

for( i = n ; i > 0 ; i -- ) {

if( n % i == 0 ) {

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

return 0; }

7. 以下程序输出结果是 (10) 。

#include int main(void) {

char s1[80] = \"ABCD\" ,s2[80] = \"DEF\" ; int i = 0 , j = 0 ;

while( s1[i] != '\\0' ) i ++ ;

while( (s1[i ++] = s2[j ++]) != '\\0') ;

puts( s1 ) ; return 0; }

五、编程题(共15分)

012101. 编写程序,实现求表达式222...2的值。

2. 一数组由1,5,-23,6,12,3,-54,32等8个整数组成,编写程序求该数组各

个元素之和。

A卷共8页第8页

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