C语言程序设计第2阶段练习题及答案这是其中一个阶段共3个阶段答案在后面.docx
《C语言程序设计第2阶段练习题及答案这是其中一个阶段共3个阶段答案在后面.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第2阶段练习题及答案这是其中一个阶段共3个阶段答案在后面.docx(12页珍藏版)》请在冰豆网上搜索。
![C语言程序设计第2阶段练习题及答案这是其中一个阶段共3个阶段答案在后面.docx](https://file1.bdocx.com/fileroot1/2022-10/11/fd2a39e4-eb96-4416-a543-458207209d29/fd2a39e4-eb96-4416-a543-458207209d291.gif)
C语言程序设计第2阶段练习题及答案这是其中一个阶段共3个阶段答案在后面
江南大学网络教育第二阶段练习题及答案,这是其中一个阶段共3个阶段。
答案在后面
考试科目:
《C语言程序设计》第章至第章(总分100分)
__________学习中心(教学点)批次:
层次:
专业:
学号:
身份证号:
姓名:
得分:
一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.下述对C语言字符数组的描述中错误的是()。
(2分)
A.字符数组可以存放字符串
B.字符数组的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
2.有以下程序
voidf(intv,intw)
{intt;
t=v;v=w;w=t;
}
main()
{intx=1,y=3,z=2;
if(x>y)f(x,y);
elseif(y>z)f(y,z);
elsef(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.有语句charstr1[10],str2[10]={"books"};则能将字符串books赋给数组str1的正确语句是()。
(2分)
A.str1={"Books"};
B.strcpy(str1,str2);
C.str1=str2;
D.strcpy(str2,str1);
4.若有变量说明:
chars,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.若有以下说明和语句,则输出结果是()。
charsp[]="\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()
{inta=2,i;
for(i=0;i<3i=""printf=""d=""f=""a="">
}
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
}
(2分)
A.777
B.777
C.789
D.789
10.若有宏定义与变量说明如下:
#defineX5
#defineYX+1
#defineZY*X/2
inta;a=Y;
则执行以下printf语句后输出的结果是()。
Printf("%d%d\n",Z,--a);(2分)
A.75
B.126
C.125
D.76
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.intnum[];
B.#defineN100
intnum[N];
C.intnum[0..100];
intnum[N];
D.intN=100;
17.若程序中定义了以下函数
doublemyadd(doublea,doubleB)
{return(a+B);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。
(2分)
A.doublemyadd(doublea,B);
B.doublemyadd(double,double);
C.doublemyadd(doubleb,doubleA);
D.doublemyadd(doublex,doubley);
18.以下描述中,正确的是()。
(2分)
A.调用函数时,实参可以是表达式
B.调用函数时,将为形参分配内存单元
C.调用函数时,实参与形参的原型必须一致
D.调用函数时,实参与形参可以用内存单元
19.在C语言中,引用数组元素时,其下标的数据类型允许是()。
(2分)
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
20.变量的有效范围与其定义位置有关,(),其作用域在整个源程序文件中都有效。
(2分)
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
二填空题(共7题,总分值28分)
21.以下程序运行后的输出结果是_________。
#defineSQR(x)x*x
main()
{inta,k=3;
a=++SQR(k+1);
printf("%d\n",a);}
(4分)22.有以下程序
voidswap1(intc[])
{intt;
t=c[0];c[0]=c[1];c[1]=t;
}
voidswap2(intc0,intc1)
{intt;
t=c0;c0=c1;c1=t;
}
main()
{inta[2]={3,5},b[2]={3,5};
swap1(A);swap2(b[0],b[1]);
printf(“%d,%d,%d,%d\n”,a[0],a[1],b[0],b[1]);
}
其输出结果是_________。
(4分)
23.在C语言中,二维数组元素在内存中的存放顺序是按_________存放的。
(4分)
24.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_________。
(4分)
25.以下函数的功能是删除字符串s中的所有数字字符。
请填空。
void dele(chars[])
{ intn=0,i;
for(i=0,s[i];i++)
if(_________)
s[n++]=s[i];
s[n]=_________;
}
(4分)
26.执行以下程序后,输出的结果是_________。
intm=10;
intf(intx,inty)
{intm=5;
m+=x*y;
returnm;}
main()
{inta=6,b=7;
printf(“%d\n”,f(a,b)/m);}
(4分)27.以下程序实现从键盘上输入一个字符,用折半查找法找出该字符在已排序的字符串a中的位置。
若字符不在,则打印**。
请完善以下程序。
#include”stdio.h”
#include”string.h”
main()
{charstr[100],ch;
intbot=0,top,mid,flag=0;
gets(str);
getchar(ch);
top=_________;
while((top-bot)>=0)
{mid=_________;
if(str[mid]==c)
{_________;_________;}
elseif(str[mid]
bot=_________;
else
top=_________;
}
if(flag)
printf(“%c字符在已知字符串中位置是%d\n”,c,mid+1);
else
printf(“**”);}
(4分)
三编程题(共2题,总分值32分)
28.编写程序将下标为奇数的数组元素从数组中删除,然后排序输出。
(16分)
29.编写程序实现输入一个十进制数,将其转化为指定进制的数制字符。
(16分)
一单选题(共20题,总分值40分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)
1.答案:
C
解析过程:
2.答案:
C
解析过程:
3.答案:
B
解析过程:
4.答案:
A
解析过程:
5.答案:
D
解析过程:
6.答案:
D
解析过程:
7.答案:
B
解析过程:
8.答案:
A
解析过程:
9.答案:
C
解析过程:
10.答案:
A
解析过程:
11.答案:
D
解析过程:
12.答案:
D
解析过程:
13.答案:
B
解析过程:
14.答案:
B
解析过程:
15.答案:
D
解析过程:
16.答案:
B
解析过程:
17.答案:
A
解析过程:
18.答案:
A
解析过程:
19.答案:
C
解析过程:
20.答案:
B
解析过程:
二填空题(共7题,总分值28分)
21.答案:
9
解析过程:
22.答案:
5,3,3,5
解析过程:
23.答案:
行
解析过程:
24.答案:
auto(动态存储)
解析过程:
25.答案:
s[i]