第八章C语言单选练习.docx
《第八章C语言单选练习.docx》由会员分享,可在线阅读,更多相关《第八章C语言单选练习.docx(45页珍藏版)》请在冰豆网上搜索。
第八章C语言单选练习
《C语言程序设计》题库
吕橙1
一、单选题
1、以下程序的运行结果是___________。
voidsub(intx,inty,int*z)
{*z=yx;}
main()
{inta,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
A:
5,2,3B:
5,
12,
7
C:
5,
12,
17
D:
5,2,
7
答案:
B
难度:
1
知识点:
读程序选结果/第八章
2、执行以下程序后,b的值为__________。
main()
{intb,k=4,m=6,*p1=&k,*p2=&m;
b=(*
p1)/(*p2)+7;
printf("%d\n",b);
}
A:
5B:
6C:
7D:
10
答案:
C
难度:
1
知识点:
读程序选结果/第八章
3、下面程序应能对两个整型变量的值进行交换。
以下正确的说法是__________。
main()
{inta=10,b=20;
printf("%d,%d",a,b);
swap(&a,&b);
printf("%d,%d",a,b);
}
swap(intp,intq)
第8章单选题
2吕橙
{
intt;
t=p;p=q;q=t;
}
A:
该程序完全正确
B:
该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可
C:
该程序有错,只要将swap()函数中的形参p和q以及t均定义为指针(执行语句不变)
即可
D:
以下说法都不正确
答案:
D
难度:
1
知识点:
读程序选结果/第八章
4、有四组对指针变量进行操作的语句,以下判断正确的选项是_________。
①int*p,*q;q=p;
inta,*p,*q;*p=*q=&a;
②inta,*p,*q;q=&a;p=*q;
inta=20,*p;*p=a;
③inta=b=0,*p;p=&a;b=*p;
inta=20,*p,*q=&a;*p=*q;
④inta=20,*p,*q=&a;p=q;
intp,q;q=&p;
A:
①正确,其余错B:
①④正确,其余错
C:
③正确,其余错D:
以下结论都不正确
答案:
D
难度:
1
知识点:
单选题/第八章
5、以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是________。
main()
{int*p,*q,a,b;p=&a;scanf("%d",*p);........}
A:
*p表示的是指针变量p的地址
B:
*p表示的是变量a的值,而不是变量a的地址
C:
*p表示的是指针变量p的值
《C语言程序设计》题库
吕橙3
D:
*p只能用来说明p是一个指针变量
答案:
B
难度:
1
知识点:
单选题/第八章
6、以下程序有错,错误原因是______。
main()
{int*p,i;char*q,ch;
p=&i;
q=&ch;
*p=40;
*p=*q;
.......
}
A:
p和q的类型不一致,不能执行*p=*q;语句
B:
*p中存放的是地址值,因此不能执行*p=40;语句
C:
q没有指向具体的存储单元,所以*q没有实际意义
D:
q虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句
答案:
D
难度:
1
知识点:
单选题/第八章
7、有如下语句inta=10,b=20,*p1,*p2;p1=&a;p2=&b;若要让p1也指向b,可选用的赋值语
句是_______。
A:
*p1=*p2;B:
p1=p2;C:
p1=*p2;D:
*p1=p2;
答案:
B
难度:
1
知识点:
单选题/第八章
8、已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值
语句是_____。
A:
k=*ptr1+*ptr2;B:
ptr2=k;C:
ptr1=ptr2;D:
k=*ptr1*(*ptr2);
答案:
B
难度:
1
知识点:
单选题/第八章
第8章单选题
4吕橙
9、变量的指针,其含义是指该变量的_______。
A:
值B:
地址C:
名D:
一个标志
答案:
B
难度:
1
知识点:
单选题/第八章
10、若已定义inta=5;下面对
(1),
(2)两个语句的正确解释是_______。
(1)int*p=&a;
(2)*p=a;
A:
语句
(1)和
(2)中的*p含义相同,都表示给指针变量p赋值
B:
(1)和
(2)语句的执行结果,都是把变量a的地址值赋给指针变量p
C:
(1)在对p进行说明的同时进行初始化,使p指向a,
(2)将变量a的值赋给指针变量p
D:
(1)在对p进行说明的同时进行初始化,使p指向a,
(2)将变量a的值赋于*p
答案:
D
难度:
1
知识点:
单选题/第八章
11、若有语句int*point,a=4;和point=&a;下面均代表地址的一组选项是______。
A:
a,point,*&aB:
&*a,&a,*point
C:
*&point,*point,&aD:
&a,&*point,point
答案:
D
难度:
1
知识点:
单选题/第八章
12、若已有说明float*p,m=3.14;要让p指向m,则正确的赋值语句是_________。
A:
p=m;B:
p=&m;C:
*p=m;D:
*p=&m;
答案:
B
难度:
1
知识点:
单选题/第八章
13、若有说明:
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;
答案:
D
《C语言程序设计》题库
吕橙5
难度:
1
知识点:
单选题/第八章
14、若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是_________。
A:
p1=&m;p2=&p1;B:
p1=&m;p2=&n;*p1=*p2;
C:
p1=&m;p2=p1;D:
p1=&m;*p2=*p1;
答案:
C
难度:
1
知识点:
单选题/第八章
15、已有变量定义和函数调用语句;inta=25;print_value(&a);下面函数的正确输出结果是
_______。
voidprint_value(int*x)
{
printf("%d\n",++*x);
}
A:
23B:
24C:
25D:
26
答案:
D
难度:
1
知识点:
读程序选结果/第八章
16、下面判断正确的是_________。
A:
char*a="china";等价于char*a;*a="china";
B:
charstr[10]={"china"};等价于charstr[10];str[]={"china"};
C:
char*s="china";等价于char*s;s="china";
D:
charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc";
答案:
C
难度:
1
知识点:
单选题/第八章
17、设char*s="\ta\017bc";则指针变量s指向的字符串所占的字节数是________。
A:
9B:
5C:
6D:
7
答案:
C
第8章单选题
6吕橙
难度:
1
知识点:
单选题/第八章
18、下面程序段中,for循环的执行次数是__________。
char*s="\ta\018bc";
for(;*s!
='\0';s++)printf("*");
A:
9B:
5C:
6D:
7
答案:
C
难度:
1
知识点:
读程序选结果/第八章
19、下面能正确进行字符串赋值操作的是____________。
A:
chars[5]={"ABCDE"};B:
chars[5]={'A','B','C','D','E'};
C:
char*s;s="ABCDE";D:
char*s;scanf("%s",s);
答案:
C
难度:
1
知识点:
单选题/第八章
20、下面程序段的运行结果是__________。
char*s="abcde";s+=2;printf("%d",s);
A:
cdeB:
字符'c'C:
字符'c'的地址D:
无确定的输出结果
答案:
C
难度:
1
知识点:
读程序选结果/第八章
21、设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下不能正确执行的赋值
语句是______。
A:
c=*p1+*p2;B:
p2=c;C:
p1=p2;D:
c=*p1*(*p2);
答案:
B
难度:
1
知识点:
单选题/第八章
22、设有下面的程序段:
chars[]="china";char*p;p=s;则下列叙述正确的是__。
《C语言程序设计》题库
吕橙7
A:
s和p完全相同
B:
数组s中的内容和指针变量p中的内容相等
C:
s数组长度和p所指向的字符串长度相等
D:
*p与s[0]相等
答案:
D
难度:
1
知识点:
单选题/第八章
23、下面程序段的运行结果是_________。
char*format="%s,a=%d,b=%d\n";
inta=1,b=10;
a+=b;
printf(format,"a+=b",a,b);
A:
for,"a+=b",abB:
format,'a+=b"
C:
a+=b,a=11,b=10D:
以上结果都不对
答案:
C
难度:
1
知识点:
读程序选结果/第八章
24、下面程序段的运行结果是_________。
char*p="%d,a=%d,b=%d\n";
inta=111,b=10,c;
c=a%b;p+=3;
printf(p,c,a,b);
A:
1,a=111,b=10B:
a=1,b=111C:
a=111,b=10D:
以上结果都不对
答案:
B
难度:
1
知识点:
读程序选结果/第八章
25、以下正确的程序段是________。
A:
charstr[20];scanf(“%s”,&str);B:
char*p;scanf(“%s”,p);
C:
charstr[20];scanf("%s",&str[2];)D:
charstr[20],*p=str;scanf("%s",p[2]);
答案:
C
难度:
1
知识点:
单选题/第八章
第8章单选题
8吕橙
26、以下正确的程序段是_________。
A:
charstr1[]="12345",str2[]="abcdef";strcpy(str1,str2);
B:
charstr[10],*st="abcde";strcat(str,st);
C:
charstr[10]="",*st="abcde";strcat(str,st);
D:
char*st1="12345",*st2="abcde";strcat(st1,st2);
答案:
C
难度:
1
知识点:
单选题/第八章
27、下面程序段的运行结果是_________。
charstr[]="ABC",*p=str;
printf("%d\n",*(p+3));
A:
67B:
0C:
字符'C'的地址D:
字符'C'
答案:
B
难度:
1
知识点:
读程序选结果/第八章
28、下面程序段的运行结果是_________。
charstr[20]=”abcdefgh”
char*p=str;
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A:
8B:
12C:
4D:
7
答案:
C
难度:
1
知识点:
读程序选结果/第八章
29、下面程序段的运行结果是__________。
chara[]="language",*p;
p=a;
while(*P!
='u'){printf("%c",*p32)
;p++;}
A:
LANGUAGEB:
languageC:
LANGD:
langUAGE
《C语言程序设计》题库
吕橙9
答案:
C
难度:
1
知识点:
读程序选结果/第八章
30、若有语句:
chars1[]="string",s2[8],s3={‘\0’},*s4="string2";则对库函数strcpy的正确的调
用是_______。
A:
strcpy(s1,"string2");B:
strcpy(s4,"string1");
C:
strcpy(s3,s1);D:
strcpy(s1,s2);
答案:
C
难度:
1
知识点:
单选题/第八章
31、以下与库函数strcpy(char*p1,char*p2)功能不相等的程序段是__________。
A:
strcpy1(char*p1,char*p2){while((*p1++=*p2++)!
='\0');}
B:
strcpy2(char*p1,char*p2){while((*p1=*p2)!
='\0'){p1++;p2++;}}
C:
strcpy1(char*p1,char*p2){while((*p1++=*p2++);}
D:
strcpy1(char*p1,char*p2){while(*p2)*p1++=*p2++;}
答案:
D
难度:
1
知识点:
单选题/第八章
32、以下与库函数strcmp(char*s,char*t)的功能相等的程序段是__________。
第8章单选题
10吕橙
A:
①B:
②C:
③D:
④
答案:
C
难度:
1
知识点:
单选题/第八章
33、下面说明不正确的是________。
A:
chara[10]="china";B:
chara[10],*p=a;p="china";
C:
char*a;a="china";D:
chara[10],*p;p=a="china";
答案:
D
难度:
1
知识点:
单选题/第八章
34、若有说明语句
chara[]="Itismine";
char*p="Itismine";
则以下不正确的叙述是_________。
A:
a+1表示的是字符t的地址B:
p指向另外的字符串时,字符串的长度不受限制
C:
p变量中存放的地址值可以改变D:
a中只能存放10个字符
答案:
D
难度:
1
知识点:
单选题/第八章
35、若已定义chars[10];则在下面表达式中不表示s[1]的地址的是________。
A:
s+1B:
s++C:
&s[0]+1D:
&s[1]
答案:
B
难度:
1
知识点:
单选题/第八章
36、下面程序段的运行结果是_______。
chars[6];s="abcd",printf("\"%s\"\n",s);
A:
"abcd"B:
"abcd"C:
"abcd\"D:
编译出错
《C语言程序设计》题库
吕橙11
答案:
D
难度:
1
知识点:
单选题/第八章
37、下面程序的功能是从输入的十个字符串中找出最长的那个串。
请选择填空。
A:
str[i]B:
&str[i][0]C:
*strD:
str[N]
答案:
C
难度:
1
知识点:
读程序选结果/第八章
38、下面程序的功能是将八进制正整数字符串转换为十进制整数。
请选择填空。
#include
voidmain()
{
char*p,s[6];
intn;
p=s;
gets(p);
n=*p‘
0’;
while(*(++p)!
='\0')n=n*8+*p'
0';
printf("%d\n",n);
}
A:
*pB:
*p++C:
*(++p)D:
p
答案:
C
难度:
1
知识点:
读程序选结果/第八章
第8章单选题
12吕橙
39、下面程序的功能是统计子串substr在母串str中出现的次数。
请选择填空。
A:
kB:
k++C:
k+1D:
++k
答案:
C
难度:
1
知识点:
读程序选结果/第八章
40、下面的程序的功能是在字符串str中找出最大的字符串并放在第一个位置上,并将该字符
前的原字符往后顺序移动,如chyab变成ychab。
请选择填空。
《C语言程序设计》题库
吕橙13
A:
p>strB:
p>=strC:
*p>str[0]D:
*p>=str[0]
答案:
C
难度:
1
知识点:
读程序选结果/第八章
41、以下程序的功能是删除字符串s中的所有空格(包括TAB符,回车符,换行符),请填空。
第8章单选题
14吕橙
A:
p+iB:
*c[i]C:
*(p+i)D:
*(c+i)
答案:
C
难度:
1
知识点:
读程序选结果/第八章
42、下面程序的功能是将字符串s中的内容按逆序输出,但不改变串中的内容,请选择填空。
#include
voidmain()
{
voidinverp(char*a);
chars[10]="hello";
inverp(s);
}
voidinverp(char*a)
{
if(!
*a)return;
inverp(a+1);
printf("%c",_________);
}
《C语言程序设计》题库
吕橙15
A:
*(a1)
B:
*aC:
*(a+1)D:
*(a)
答案:
B
难度:
1
知识点:
读程序选结果/第八章
43、下面的程序的功能是用递归法将一个整数存放到一个字符数组中。
存放时按逆序存放。
如
483存放成“384”,请填空。
#include
voidconvert(char*a,intn)
{
inti;
if((i=n/10)!
=0)convert(a+1,i);
*a=________;
}
voidmain()
{
intnumber;
charstr[10]="\0";
scanf("%d",&number);
convert(str,number);
puts(str);
}
A:
n/10B:
n%10C:
n/10+’0’D:
n%10+'0'
答案:
D
难度:
1
知识点:
读程序选结果/第八章
44、下面程序的功能是用递归法将一个整数转换成字符形式输出。
例如输入483,应输出字符
串“483”。
请选择填空。
#include
voidconvert(intn)
{
inti;
if((i=n/10)!
=0)convert(i);
putchar(_______+'0');
}
voidmain()
{
第8章单选题
16吕橙
intnumber;
scanf("%d",&number);
if(number<0)
{
putchar('')
;
number=number;
}
convert(number);
}
A:
nB:
n/10C:
n%10D:
i%10
答案:
C
难度:
1
知识点:
读程序选结果/第八章
45、下面程序的功能是按字典顺序比较两个字符串s,t的大小,如果s大于t则返回正值,等
于则返回0,小于返回负值。
请选择填空。
#include
ints(char*s,char*t)
{
for(;*s==*t;______)
if(*s=='\0')return0;
return(*s*
t);
}
voidmain()
{
chara[20]={'\0'},b[10]={'\0'},*p,*q;
inti;
p=a;
q=b;
scanf("%s%s",a,b);
i=s(p,q);
printf("%d",i);
}
A:
s++B:
t++C:
s++;t++D:
t++,s++
答案:
D
难度:
1
知识点:
读程序选结果/第八章
《C语言程序设计》题库
吕橙17
46、下面程序的功能是从键盘接收一个字符串,然后按照字符顺序从小到大进行排序,并删除
重复的字符。
请选择填空。
A:
*r>*qB:
*r>*pC:
r>qD:
r>p
答案:
A
难度:
1
知识点:
读程序选结果/第八章
47、下面程序的功能是将字符串a的所有字符传递到字符串b中,要求每传送三个字符后再存
放一个空格,例如字符串a为”abcdefg”,则字符串b为”abcdefg”,请选择填空。
第8章单选题
18吕橙
A:
i==4B:
*p==’\0’C:
!
*pD:
i!
=4
答案:
A
难度:
1
知识点:
读程序选结果/第八章
48、当运行以下程序时,从键盘输入Happy!
(表示回车),则下面的程序的运行结
果是________。
《C语言程序设计》题库
吕橙19
A:
7B:
6C:
5D:
10
答案:
B
难度:
1
知识点:
读程序选结果/第八章
49、下面程序的功能是将一个整数字符串转换为一个整数,如”1234”
转换为1234,
请选择填
空。
A:
*pB:
*p+’0’C:
*p‘
0’D:
*p32
答案:
C
难度:
1
知识点:
读程序选结果/第八章
第8章单选题
20吕橙
50、下面的程序结果是________。
A:
gaeB:
gaC:
LanguageD:
有语法错误
答案:
A
难度:
1
知识点:
知识点/浩强单选/第八章
51、下面程序的运行结果是_________。
//本题可以采用排除法
A:
10B:
2C:
C51D:
\0
答案:
C
难度:
1
知识点:
读程序选结果/第八章
《C语言程序设计》题库
吕橙21
52、下面的程序的运行结果是___________。
A:
abcB:
34C:
a34D:
a34bc
答案:
B
难度:
1
知识点:
读程序选结果/第八章
53、下面程序的运行结果是________。
#include
#include
main()
{
char*s1="AbDeG";
char*s2="AbdEg";
s1+=2;s2+=2;
printf("%d\n",strcmp(s1,s2));
}
A:
正数B:
负数C:
零D:
不确定的值
第8章单选题
22吕橙
答案:
B
难度:
1
知识点:
读程序选结果/第八章
54、当运行以下程序时,从键盘输入MyBooK(表示回车),则下面程序的运行结
果是________。
A:
mYbOOkB:
mybookC:
myD:
MyBook
答案:
B
难度:
1
知识点:
读程序选结果/第八章
55、下面程序