C语言练习题1

  • 格式:doc
  • 大小:31.50 KB
  • 文档页数:11

一、填空 共10题 (共计20分)

第1题 (2.0分)

定义int a[2][3];表示数组a中的元素个数是【1】个.

第2题 (2.0分)

已知a=13,b=6, a/b的十进制数值为【1】.

第3题 (2.0分)

已知a=13,b=6, !a的十进制数值为【1】.

第4题 (2.0分)

函数调用时的实参和形参之间的数据是单向的【1】传递.

第5题 (2.0分)

当a=3,b=2,c=1;时,执行以下程序段后 c=【1】.

if(a>b) a=b;

if(b>c) b=c;

else c=b;

c=a;

第6题 (2.0分)

程序段int k=10; while(k=0) k=k-1;循环体语句执行【1】次.

第7题 (2.0分)

已知a=13,b=6, a||b的十进制数值为【1】.

第8题 (2.0分)

函数的定义不可以嵌套,但函数的调用【1】嵌套.

第9题 (2.0分)

若有以下数组a,数组元素:a[0]~a[9],其值为

9 4 12 8 2 10 7 5 1 3

该数组中下标最大的元素的值是【1】.

第10题 (2.0分)

函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参.

二、判断 共10题 (共计10分)

第1题 (1.0分)

标识符define是C语言中的关键字。

第2题 (1.0分)

假设有int a[10], *p;则p=&a[0]与p=a等价。

第3题 (1.0分)

x*=y+8 等价于 x=x*(y+8)。

第4题 (1.0分)

通过return语句,函数可以带回一个或一个以上的返回值。

第5题 (1.0分)

函数strlen("ASDFG\n")的值是7。

第6题 (1.0分)

有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(p+8).

第7题 (1.0分)

C语言本身不提供输入输出语句,输入和输出操作是由函数来

实现的。

第8题 (1.0分)

进行宏定义时,宏名必须使用大写字母表示。

第9题 (1.0分)

字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.

第10题 (1.0分)

表达式 (j=3, j++) 的值是4.

三、单项选择 共10题 (共计20分)

第1题 (2.0分)

若有说明:int *p,m=5,n;以下正确的程序段是()。

A:p=&n;scanf("%d",&p);

B:p=&n;scanf("%d",*p)

C:scanf("%d",&n);*p=n;

D:p=&n;*p=m;

第2题 (2.0分)

以下不符合C语言语法的赋值语句是()。

A:j++;

B:j=j=5;

C:k=(2*4,k*4);

D:y=float(j);

第3题 (2.0分)

若有int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5

的语句为()。

A:printf("%d",*(a+5));

B:printf("%d",p[5]);

C:printf("%d",*(p+5)); D:printf("%d",*p[5]);

第4题 (2.0分)

下列说法中错误的是

A:一个数组只允许存储同种类型的变量

B:如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被自动初始化为最后一个给定元素的值

C:数组的名称其实是数组在内存中的首地址

D:当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改

第5题 (2.0分)

以下叙述正确的是()。

A:do-while语句构成的循环不能用其它语句构成的循环来代替.

B:do-while语句构成的循环只能用break语句退出.

C:用do-while语句构成的循环,在while后的表达式为非零时结束循环.

D:用do-while语句构成的循环,在while后的表达式为零时结束循环

第6题 (2.0分)

对于基本类型相同的两个指针变量之间,不能进行的运算是()。

A:<

B:=

C:+

D:-

第7题 (2.0分)

先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是()。

A:c='a';

B:c="a";

C:c="97";

D:C='97'

第8题 (2.0分)

以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()。

A:char s[10]="abcdefg";

B:char t[]="abcdefg",*s=t;

C:char s[10];s="abcdefg"; D:char s[10];strcpy(s,"abcdefg");

第9题 (2.0分)

C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是()。

A:void

B:int

C:float

D:double

第10题 (2.0分)

已定义两个字符数组a,b,则以下正确的输入格式

A:scanf("%s%s", a, b);

B:get(a, b);

C:scanf("%s%s", &a, &b);

D:gets("a"),gets("b");

四、程序填空 共1题 (共计10分)

第1题 (10.0分)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出

其和。

-------------------------------------------------------*/

#include

#include

main()

{

int i,n,sum;

sum=0;

/***********SPACE***********/

【?】;

/***********SPACE***********/

for(i=1; 【?】 ;i++) /***********SPACE***********/

if(【 sum=sum+i;?】)

if(i%2==0)

{

n++;

printf("%6d",i);

/***********SPACE***********/

if(【?】)

printf("\n");

}

printf("\ntotal=%d",sum);

}

答案:

=======(答案1)=======

n=0

=======(答案2)=======

i<=300

=======(答案3)=======

i%7 == 0 || i%17 == 0

=======(答案4)=======

n%5 == 0

五、程序改错 共1题 (共计10分)

第1题 (10.0分)

/*------------------------------------------------------

【程序改错】

--------------------------------------------------------

功能:计算正整数num的各位上的数字之积。

例如:输入252,则输出应该是20。

------------------------------------------------------*/

#include

long fun (long num)

{

/**********FOUND**********/

long k;