C语言练习题Word文件下载.docx
- 文档编号:20389059
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:132
- 大小:91.42KB
C语言练习题Word文件下载.docx
《C语言练习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言练习题Word文件下载.docx(132页珍藏版)》请在冰豆网上搜索。
(C)一个指向具有M个整型元素的一维数组的指针
(D)具有M个指针元素的一维指针数组,每个元素只能指向整型量
9、指针s所指字符串的长度为()。
char*s=″\t\″Name\\Address\n″;
(A)19(B)15(C)18(D)说明不合法
10、若有intk=5;
floatx=1.2;
则表达式(int)(x+k)的值是()
(A)5(B)6.2(C)7(D)6
二、判断题(每小题0.5分,共5分)
判断下面的叙述是否正确,如果正确请在括号内填√,否则填×
。
1、在位运算中,一般而言,操作数每左移一位,其结果相当于操作数除以2。
()
2、B5是合法书写的十六进制常数。
3、一个字符串所占的字节数等于其实际长度加1。
4、每个源文件都必须有且只能有一个main函数。
5、break语句只能在循环语句中使用。
6、被调函数的形参值发生变化,主调函数中相应的实参值也将随之发生变化。
7、如果数组超界使用,则不能通过编译。
8、在局部变量的作用域内,同名的全局变量不起作用。
9、只有外部变量才能被说明为静态变量。
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=&
*p4=getchar();
四、读程序写出结果(每小题2分,共16分)
1、main()
{
inti=3,j=2,a,b,c;
a=(--i==j++)?
--i:
++j;
b=i++;
c=j;
printf("
%d,%d,%d\n"
,a,b,c);
}
2、main(){inta[8]={1,2,3,4,5,6,7,8};
int*p=a;
do{printf("
\n%d"
*p++);
p+=2;
}while(p<
a+8);
}
3、f1(){intx=1;
staticy=2;
x++;
y++;
\n%d\n"
x+y++);
main()
{
f1(),f1(),f1();
579
4、#include<
stdio.h>
#defineFUDGE(y)2.84+y
#definePR(a)printf("
%d"
(int)(a))
intx=2;
PR(FUDGE(5)*x);
}12
5、voidprtv(int*x){inti;
for(i=0;
2;
i++)x[i]=1;
x[i]=8;
inti,a[]={2,4,6};
prtv(a);
3;
i++)
a[i]);
}118
6、main(){charstr1[]="
abcdefghijk"
str2[20];
char*p1=str1,*p2=str2;
for(;
*p1!
='
\0'
;
p1++)
if(*p1>
'
d'
&
*p1<
k'
)
{*p2=*p1;
p2++;
*p2='
p2=str2;
\n%s"
p2);
}efghij
7、main(){intadd(int);
intx=2;
int(*p)();
inti;
p=add;
p(x);
intadd(x)
8、main(){char*s[]={"
China"
,"
Japan"
French"
England"
};
char**p;
p=s+2;
%s"
*p);
}French
五、程序填空(每空1分,共9分)
1、求100以内的质数。
{intp[100],i,j;
100;
p[i]=i;
for(i=4;
i++)
for(j=2;
j<
=i/2;
j++)
if(i%j==0)
P[i]=0;
break;
for(i=2;
if(p[i])
%5d"
p[i]);
\n"
);
2、假设函数ABC是求取字符串的长度。
ABC(char*k)
{char*p;
p=k;
while(*p++)
return(p-k);
Main()
{charstr[]=”djflkjlsaf”;
ABC(str);
3、如下程序使x与y变量之值进行交换。
#include<
voidmain()
voidswap(int*ptr1,int*ptr2);
intx,y,*ptr1,*ptr2;
inputx,y"
scanf("
%d,%d"
&
x,&
y);
%d\t%d\n"
x,y);
ptr1=&
x;
ptr2=⑦;
if(x<
y)
swap(⑧);
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
B
二、判断题(每小题0.5分,共5分)正确用“A”表示,错误用“B”表示
A
三、多项选择题(每小题2分,共10分)
ABCDE
BE
ABD
ACD
四、读程序写出结果(每小题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
(2)
11、若有以下说明和语句,且0≤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;
1、表达式3.2%5是合法的。
2、逗号表达式是没有值和类型的。
3、函数的调用可以返回一个以上的返回值。
4、C语言的编译系统对宏命令的处理是在C源程序编译阶段进行的。
5、如果被定义函数的返回值是整型,可以不必进说明。
7、一个变量的指针就是该变量的地址。
8、函数的形参必须在函数体外逐个说明其类型。
9、a[10]中10表示a数组有10个元素,下标从1开始。
请从下列每题中选择一个或多个正确答案。
1、main()
intm=5;
if(m++>
5)
%d,%d,%d\n"
m,++m,m++);
else
m--,m,--m);
}_
3、#include<
main()
inti=010,j=10;
++i,j--);
4、#include<
inta=2,c=5;
a=%%d,b=%%d\n"
a,c);
}
5、main()
6、intm=13;
intf(intx,inty)
intm=3;
return(x*y-m);
inta=7,b=5;
%d\n"
f(a,b)/m);
8、#include<
math.h>
{inta=1,b=4,c=2;
floatx=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
%f\n"
z);
1、输入5个国家的国名,要求按照字母顺序排列后输出。
string.h>
voidsort(char*name[],intn);
voidprint(char*name[],intn);
staticchar*name[]={"
"
America"
Australia"
France"
German"
};
intn=5;
sort(name,n);
print(name,n);
voidsort(char*name[],intn)
char①;
int②;
③;
{k=i;
for(④;
n;
j++)
if(strcmp(name[k],name[j])>
0)
k=j;
if(⑤)
{pt=name[i];
name[i]=name[k];
name[k]=pt;
voidprint(char*name[],intn)
%s\n"
name[i]);
ABC(char*k)
p=⑥;
while(*p++);
3、计算S=1-1/3+1/5-1/7+1/9+…+1/(2n+1)。
{inti=0,n;
floats=0.0,w,f=-1.0;
do
{printf("
PleaseinputN:
"
%n);
}while(⑦);
f=⑧*f,w=⑨,s+=w;
TheResultis:
%10.2f\n"
s);
六、单选题(每小题1分,共10分)
七、判断题(每小题0.5分,共5分)正确用“A”表示,错误用“B”表示
八、多项选择题(每小题2分,共10分)
九、读程序写出结果(每小题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)
(3)
一、判断题(每小题1分,共10分)
1、数组是基本数据类型。
10、设P是指向数组A的指针变量,则A[i]和P[i]等价。
二、单项选择填空(每小题1分,共10分)
1、C语言源程序是由()组成的。
2、若a为整型变量,且a=-2L;
则语句:
printf(″%d\n″,a);
的结果是()。
(A)赋值不合法(B)输出值为-2
(C)输出为不确定值(D)输出值为2
3、在C语言的if语句中,用作判断的表达式为()。
(A)关系表达式(B)逻辑表达式
(C)算术表达式(D)任意表达式
4、在以下运算符中,优先级最高的运算符是()。
=(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];
i<4;
i++)strp[i]=str[i];
若0≤k<4,下列选项中对字符串的非法引用是(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题