江南大学网络教育第二阶段练习题
考试科目:《C语言程序设计》第章至第章(总分100分)
__________学习中心(教学点)批次:层次:
专业:学号:身份证号:
姓名:得分:
一单选题 (共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。)
1. 下述对C语言字符数组的描述中错误的是()。(2 分)
A. 字符数组可以存放字符串
B. 字符数组的字符串可以整体输入、输出
C. 可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
2. 有以下程序
void f(int v , int w)
{ int t;
t=v;v=w;w=t;
}
main( )
{ int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf(“%d,%d,%d\n”,x,y,z);
}
执行后输出结果是()。
(2 分)
A. 1,2,3
B. 3,1,2
C. 1,3,2
D. 2,3,1
3. 有语句char str1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语
句是()。(2 分)
A. str1={"Books"};
B. strcpy(str1,str2);
C. str1=str2;
D. strcpy(str2,str1);
4. 若有变量说明:char s,s1[20];执行语句:s="student";s1=s;正确的叙述是()。(2 分)
A. 二个语句都不正确
B. s所指向的字符串和s1的值都是"student"
C. 第一个语句正确,而第二个语句不正确
D. 第二个语句正确,而第一个语句不正确
5. C语言的编译系统对宏命令是()时候处理的。(2 分)
A. 在程序运行
B. 在程序连接时
C. 和源程序其它C语言同时进行编译时
D. 对源程序其它成份正式编译之前进行处理的
6. 下列说法不正确的是()。(2 分)
A. 宏替换不占用运行时间
B. 宏无类型
C. 宏替换只是字符替换
D. 宏名必须用大写字母表示
7. 若有以下说明和语句,则输出结果是()。
char sp[]="\x69\082\n";
printf("%d",strlen(sp));(2 分)
A. 3
B. 5
C. 1
D. 字符串中有非法字符,输出值不定
8. 以下函数调用中有()个实参。
expd((a1,a2,a3),(a4,a5),a7,a8)
(2 分)
A. 4个
B. 3个
C. 8个
D. 5个
9. 执行完下面的程序段后,屏幕显示的内容为()。
main()
{ int a=2,i;
for(i=0;i<3 i="" printf="" d="" f="" a="">
}
f(int a)
{ int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
(2 分)
A. 777
B. 7 7 7
C. 789
D. 7 8 9
10. 若有宏定义与变量说明如下:
#define X 5
#define Y X+1
#define Z Y*X/2
int a; a=Y;
则执行以下printf语句后输出的结果是()。
Printf("%d %d\n",Z,--a);(2 分)
A. 7 5
B. 12 6
C. 12 5
D. 7 6
11. 函数调用可以……,以下错误的是()。(2 分)
A. 出现在执行语句中
B. 出现在一个表达式中
C. 作为一个函数的实参
D. 作为一个函数的形参
12. C语言中函数能否嵌套调用和递归调用?以下说法正确的是()。(2 分)
A. 二者均不可
B. 前者可,后者不可
C. 前者不可,后者可
D. 二者均可
13. C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。(2 分)
A. float型
B. int型
C. long型
D. double型
14. 有两个字符数组a,b,则以下正确的输入语句是()。(2 分)
A. gets (a,b);
B. scanf ("%s%s",a,b);
C. scanf ("%s%s",&a,&b);
D. gets ("a"),gets ("b");
15. 数组名作为参数传递给函数,此时作为实在参数的数组名被处理为()。(2 分)
A. 该数组的长度
B. 该数组的元素个数
C. 该数组中各元素的值
D. 该数组的首地址
16. 以下能正确定义一维数组的选项是()。(2 分)
A. int num [];
B. #define N 100
int num [N];
D. int N=100;
C. int num[0..100];
int num[N];
17. 若程序中定义了以下函数
double myadd(double a,double B)
请输入长度介于05之间的字符串{ return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
(2 分)
A. double myadd(double a,B);
B. double myadd(double,double);
C. double myadd(double b,double A);
D. double myadd(double x,double y);
18. 以下描述中,正确的是()。(2 分)
A. 调用函数时,实参可以是表达式
B. 调用函数时,将为形参分配内存单元
C. 调用函数时,实参与形参的原型必须一致
D. 调用函数时,实参与形参可以用内存单元
19. 在C语言中,引用数组元素时,其下标的数据类型允许是()。(2 分)
A. 整型常量
B. 整型表达式
C. 整型常量或整型表达式
D. 任何类型的表达式
20. 变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。(2 分)
A. 在第一个函数中定义的变量
B. 在定义第一个函数之前所定义的变量
C. 在主函数中定义的变量
D. 在函数中定义的静态变量
二填空题 (共7题,总分值28分 )
21. 以下程序运行后的输出结果是 _________ 。
#define SQR(x) x*x
main()
{ int a,k=3;
a=++SQR(k+1);
printf("%d\n",a);}
(4 分)22. 有以下程序
void swap1(int c[])
{ int t;
t=c[0];c[0]=c[1];c[1]=t;
}
void swap2(int c0,int c1)
{ int t;
t=c0;c0=c1;c1=t;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论