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;