c试卷

内蒙古农业大学职业技术学院信息管理系

《C 程序设计》期末试卷(A )

二、选择题:(共30分,每题2分)

1.组成C 程序的基本单位是________。 A .表达式与语句 B .若干文件 C .函数

D .main 函数

2.若用数组名作为函数调用时的实参,则实际上传递给形参的是 。 A .数组的首地址

B. 数组的第一个元素值

C .数组中全部元素的值 D. 数组元素的个数

3.在while (x )语句中的x 与下面条件表达式等价的是: 。 A. x!=0 B. x==1 C. x!=1 D. x==0 4.以下程序运行结果是 main()

{char s[]=”Address ”; printf(”%d\n ”, strlen(s)); }

A) 7 B) 8 C) 9 D) 10 5.以下不正确的描述是

A) 在函数外部定义的变量是全局变量 B) 在函数内部定义的变量是局部变量 C) 函数的形参是局部变量 D) 局部变量不能与全局变量同名

6.下列数据中,为字符的是________。

A .'AB'

B ."A"

C .How

D .'A'

7.下列表达式没有错误的是________。 A .5.0%2 B .x+1=5 C .&p D .&(x+1)

8.任何复杂的程序,都是由________构成的。 A .分支结构、顺序结构、过程结构 B .循环结构、分支结构、过程结构

C .顺序结构、循环结构、分支结构

D .循环结构、分支结构

9.若有以下变量说明和数据的输入方式,则正确的输入语句为________。 变量说明:float x1,x2;

数据的输入方式:4.52<回车> 3.5<回车> A .scanf (“%f,%f”,&x1,&x2);

B .scanf (“%f%f”,&x1,&x2);

C .scanf (“%3.2f,%2.1f”,&x1,&x2);

D .scanf (“%3.2f%2.1f”,&x1,&x2); 10.已知:int a,*p=&a; 则为了得到变量a 的值,下列错误的表达式为

________。 A .p[0] B .*p C .&*a D .*&a 11.若有定义:int b[5];则以下对b 数组元素的正确引用是________。 A .*&b[5] B .b+2

C .*(*(b+2))

D .*(b+2)

12.设有int x,y; 以下语句判断x 和y 是否相等,正确的说法是该语句________。

if (x=y) printf(" x is equal to y."); A .语法错 B .不能判断x 和y 是否相等

C .编译出错

D .能判断x 和y 是否相等

13.以下有关switch 语句的正确说法是________。 A .break 语句是语句中必须的一部分

B .在switch 语句中可以根据需要使用或不使用break 语句

C .break 语句在switch 语句中不可以使用

D .在switch 语句中的每一个case 都要用break 语句

14.凡是在函数中未指定存储类别的局部变量,其隐含的存储类别是

________。

A .静态(static )

B .外部(extern )

系 班 级 姓 名 学号

.........密..............封.................线...................内....................不..................准..................答................题...........................

C.自动(auto)D.寄存器(register)

15.下列对字符串的定义中,错误的是。

A.char str[5]= "abcde"; B.char str[ ]= "abcde";

C.char *str ="abcde"; D.char str[ ]={ 'a', 'b', 'c', 'd', 'e', '\0'};

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

1.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。2.设有语句“int a=3;”,执行语句“printf(”%d”,-a++ );”后,输出结果是 , 变量a的值是。

3. 如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为。

4.在C语言中使用到的变量,都应先,后。

5.若有定义:char c=′\010′;则变量c中包含的字符个数为______。

6.函数的返回值是通过函数中的语句获得的。

7.下面函数用来求出两个整数之和,并通过形参传回两数相加之和,请填空。 int add(int x,int y, z)

{ return( =x+y);}

5.C程序的基本单位是。

7.C程序中函数调用的方法为、和 .

8.C的五种语句类型为、、、和。

三、分析程序结果(每题5分共20分)

1.main()

2.main()

{ int x=1,y=2,z=3; { int a=24,b=16,r;

x+=y+=z; while (b)

printf("%d",(x

} a=b; b=r; }

结果:printf("%d",a); }结果:3.#include

main()

{int a=10;

{ int a=15;

printf(“a.1=%d,”,a); }

printf(“a.2=%d\n”,a);

}结果:

4.int runc(int a,int b)

{return(a+b);

}

main()

{int x=2,y=5,z=8,r;

r=runc(runc(x,y),z);

printf(“%d\n”,r);

}结果:

四、程序填空(每题5分共10分)

1.下面的程序的功能是:利用指针统计一个字符串中,字母、空格、数字、及其它字符的个数,请填空。

#include

main()

{ int alpha,space,digit,other;

char *p,s[80];

alpha=space=digit=other=0;

gets(s);

for(p=s;*p!=’\0’;p++)

if( )alpha++;

else if( )space++;

else if( )digit++;

else other++;

printf(“alpha:%d space:%d digit:%d other:%d\n”,alpha,space,digit,other);} 2.以下程序用来求数组全部元素的和,请填写缺少的语句。

#include

main( )

{

int a[ ]={0,1,2,3,4,5,6,7,8,9};

int s=0 , i, *p;

p= ;

for (i=0; i<10; i++) ;

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

}

五、编程题(共20分)

1.编程序对键盘输入的10个数由小到大排序,并输出结果。(8分)

(要求:用选择法)

2.编写程序,计算s=1+3+5+7...+99。(6分)

3.输出一下图形(用循环) * *** ***** ******* ***** *** *

系 班 级 姓 名 学号

.........密..............封.................线...................内....................不..................准..................答................

相关文档
最新文档