swap(⑧);
printf("%d\t%d\n",x,y);
}
voidswap(int*ptr1,int*ptr2)
{
⑨;
temp=*ptr1;
*ptr1=*ptr2;
*ptr2=temp;
}
参考答案
一、单选题(每小题1分,共10分)
1
2
3
4
5
6
7
8
9
10
C
D
D
C
C
D
C
C
B
D
二、判断题(每小题0.5分,共5分)正确用“A”表示,错误用“B”表示
1
2
3
4
5
6
7
8
9
10
B
B
A
A
B
B
B
A
B
A
三、多项选择题(每小题2分,共10分)
1
2
3
4
5
ABCDE
BE
ABD
ACD
ABD
四、读程序写出结果(每小题2分,共16分)
1、1,1,32、147
3、5794、12
5、1186、efghij
7、4568、French
五、程序填空(每空1分,共9分)
①i②i++③j++
④p[i]⑤i或p[i]⑥k
⑦&y⑧ptr1,ptr2⑨inttemp
C语言练习题
(2)
一、单选题(每小题1分,共10分)
请选择下列各题中的一个正确答案。
11、若有以下说明和语句,且0≤i<10,
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,i;
p=a;
则对数组元素的错误引用是()。
(A)*(a+i)(B)a[p-a](C)p+i(D)*(&a[i])
12、在位运算中,一般而言,操作数每左移一位,其结果相当于()
(A)操作数乘以2(B)操作数除以2
(C)操作数除以4(D)操作数乘以4
13、C语言源程序是由()
(A)子程序(B)过程
(C)函数(D)主程序和子程序
14、与定义int*p[4]等价的是()。
(A)intp[4]
(B)int*(p[4])
(C)int*p
(D)int(*p)[4]
15、C语言中的文件类型只有()。
(A)ASCII文件和二进制文件
(B)两种索引文件和文本文件两种
(C)文本文件一种
(D)二进制文件一种
16、设有语句chara=’\72’;,则变量a()
(A)包含1个字符(B)包含2个字符
(C)包含3个字符(D)说明不合法
17、以下说法中正确的是()。
(A)C语言程序总是从第一个定义的函数开始执行
(B)在C语言程序中,要调用的函数必须在main()函数中定义
(C)C语言程序总是从main()函数开始执行
(D)C语言程序中的main()函数必须放在程序的开始部分
18、在以下运算符中,优先级最高的运算符是()。
(A)<=(B)/
(C)!
=(D)&&
19、在C语言程序中,预处理命令是以()开头的命令。
(A)#(B)%
(C)&(D)*
20、若有intk=5;floatx=1.2;则表达式(int)(x+k)的值是()
(A)5(B)6.2(C)7(D)6
二、判断题(每小题0.5分,共5分)
判断下面的叙述是否正确,如果正确请在括号内填√,否则填×。
1、表达式3.2%5是合法的。
()
2、逗号表达式是没有值和类型的。
()
3、函数的调用可以返回一个以上的返回值。
()
4、C语言的编译系统对宏命令的处理是在C源程序编译阶段进行的。
()
5、如果被定义函数的返回值是整型,可以不必进说明。
()
6、被调函数的形参值发生变化,主调函数中相应的实参值也将随之发生变化。
()
7、一个变量的指针就是该变量的地址。
()
8、函数的形参必须在函数体外逐个说明其类型。
()
9、a[10]中10表示a数组有10个元素,下标从1开始。
()
10、设P是指向数组A的指针变量,则A[i]和P[i]等价。
()
三、多项选择题(每小题2分,共10分)
请从下列每题中选择一个或多个正确答案。
1、以下是属于算法的特点的选项()
(A)有穷性(B)确定性(C)有效性
(D)有零个和多个输入(E)有一个或多个输出
2、下列关于文件的结论中正确的是()
(A)对文件操作必须先关闭文件
(B)对文件操作必须先打开文件
(C)对文本文件只能顺序操作
(D)C语言不能操作二进制文件
(E)对文件操作结束后必须关闭文件
3、若有以下说明和语句,且0≤i<10,
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,i;
p=a;
则对数组元素的正确引用是()。
(A)*(a+i)(B)a[p-a](C)p+i(D)*(&a[i])
4、在C语言程序中,下列说法哪些是错误的()
(A)函数的定义可以嵌套,但函数的调用不可以嵌套
(B)函数的定义不可以嵌套,但函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
5、若有定义:
char*p1,*p2,*p3,*p4,ch;则能正确赋值的程序语句为()
(A)p1=&ch;scanf(″%c″,p1);
(B)p2=(char*)malloc
(1);scanf(″%c″,p2);
(C)p3=getchar();
(D)p4=&ch;*p4=getchar();
四、读程序写出结果(每小题2分,共16分)
1、main()
{
intm=5;
if(m++>5)
printf("%d,%d,%d\n",m,++m,m++);
else
printf("%d,%d,%d\n",m--,m,--m);
}_
2、main(){inta[8]={1,2,3,4,5,6,7,8};int*p=a;do{printf("\n%d",*p++);p+=2;}while(p3、#include
main()
{
inti=010,j=10;
printf("%d,%d",++i,j--);
}
4、#include
main()
{
inta=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
5、main()
{
char*alpha[6]={″aaa″,″bbb″,″ccc″,″ddd″,″eee″,″fff″};
char**p;
inti;
p=alpha;
for(i=0;i<4;i++)printf(″%s″,p[i]);
printf(″\n″);
}
6、intm=13;
intf(intx,inty)
{
intm=3;
return(x*y-m);
}
main()
{
inta=7,b=5;
printf("%d\n",f(a,b)/m);
}
7、main(){intadd(int);
intx=2;int(*p)();inti;
p=add;
for(i=0;i<3;i++)
p(x);
}
intadd(x)
{
staticy=2;
printf("\n%d",x+y++);
}
8、#include
#include
main()
{inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
五、程序填空(每空1分,共9分)
1、输入5个国家的国名,要求按照字母顺序排列后输出。
#include
main()
{
voidsort(char*name[],intn);
voidprint(char*name[],intn);
staticchar*name[]={"China","America","Australia","France","German"};
intn=5;
sort(name,n);
print(name,n);
}
voidsort(char*name[],intn)
{
char①;
int②;
for(i=0;③;i++)
{k=i;
for(④;jif(strcmp(name[k],name[j])>0)
k=j;
if(⑤)
{pt=name[i];
name[i]=name[k];
name[k]=pt;
}
}
}
voidprint(char*name[],intn)
{
inti;
for(i=0;iprintf("%s\n",name[i]);
}
2、假设函数ABC是求取字符串的长度。
ABC(char*k)
{char*p;
p=⑥;
while(*p++);
return(p-k);
}
3、计算S=1-1/3+1/5-1/7+1/9+…+1/(2n+1)。
#include
main()
{inti=0,n;
floats=0.0,w,f=-1.0;
do
{printf("PleaseinputN:
");
scanf("%d",%n);
}while(⑦);
for(i=0;if=⑧*f,w=⑨,s+=w;
printf("TheResultis:
%10.2f\n",s);
}
参考答案
六、单选题(每小题1分,共10分)
1
2
3
4
5
6
7
8
9
10
D
A
C
B
A
A
C
B
A
D
七、判断题(每小题0.5分,共5分)正确用“A”表示,错误用“B”表示
1
2
3
4
5
6
7
8
9
10
B
B
B
B
A
B
A
A
B
A
八、多项选择题(每小题2分,共10分)
1
2
3
4
5
ABCDE
BE
ABD
ACD
ABD
九、读程序写出结果(每小题2分,共16分)
1、5,5,52、71215
3、9,104、a=%d,b=%d
5、aaabbbcccddd6、2
7、4568、13.700000
一十、程序填空(每空1分,共9分)
①(*pt)[5]②i,j,k③i<5
④j=i⑤k=j⑥k
⑦n<0⑧-1⑨f/(2*n+1)
C语言练习题
(3)
一、判断题(每小题1分,共10分)
判断下面的叙述是否正确,如果正确请在括号内填√,否则填×。
1、数组是基本数据类型。
()
2、B5是合法书写的十六进制常数。
()
3、一个字符串所占的字节数等于其实际长度加1。
()
4、每个源文件都必须有且只能有一个main函数。
()
5、break语句只能在循环语句中使用。
()
6、被调函数的形参值发生变化,主调函数中相应的实参值也将随之发生变化。
()
7、如果数组超界使用,则不能通过编译。
()
8、在局部变量的作用域内,同名的全局变量不起作用。
()
9、只有外部变量才能被说明为静态变量。
()
10、设P是指向数组A的指针变量,则A[i]和P[i]等价。
()
二、单项选择填空(每小题1分,共10分)
1、C语言源程序是由()组成的。
(A)子程序(B)过程
(C)函数(D)主程序和子程序
2、若a为整型变量,且a=-2L;则语句:
printf(″%d\n″,a);的结果是()。
(A)赋值不合法(B)输出值为-2
(C)输出为不确定值(D)输出值为2
3、在C语言的if语句中,用作判断的表达式为()。
(A)关系表达式(B)逻辑表达式
(C)算术表达式(D)任意表达式
4、在以下运算符中,优先级最高的运算符是()。
(A)<=(B)/
(C)!
=(D)&&
5、若有以下说明和语句,且0≤i<10,
inta[]={1,2,3,4,5,6,7,8,9,0};
int*p,i;
p=a;
则对数组元素的错误引用是()。
(A)*(a+i)(B)a[p-a]
(C)p+i(D)*(&a[i])
6、若有说明:
inta[5],*p=a;则对a数组元素地址的正确引用是()。
(A)&a[5](B)p+2
(C)a++(D)&a
7、若有以下说明和语句:
chars[12]=″abook!
″;
printf(″%d″,strlen(s));
则输出结果是()。
(A)12(B)8
(C)7(D)6
8、设有以下语句:
charstr[4][12]={″aaa″,″bbb″,″ccc″,″ddd″};
char*strp[4];
inti;
for(i=0;i<4;i++)strp[i]=str[i];
若0≤k<4,下列选项中对字符串的非法引用是(