C语言试题卷选择题与答案解析.docx
- 文档编号:26085184
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:37
- 大小:27.52KB
C语言试题卷选择题与答案解析.docx
《C语言试题卷选择题与答案解析.docx》由会员分享,可在线阅读,更多相关《C语言试题卷选择题与答案解析.docx(37页珍藏版)》请在冰豆网上搜索。
C语言试题卷选择题与答案解析
★第1题:
阅读程序,选择程序的运行结果A—
#include
main()
{intx;
x=try(5);
printf(%d\n:
x);
}
try(intn)
{if(n>0)return(n*try(n-2));
elsereturn
(1);
}
A.15
B.120
C.1
D.前面3个答案均是错误的
第2题:
在下列结论中,只有一个是正确的,它是A―。
A.递归函数中的形式参数是自动变量
B.递归函数中的形式参数是外部变量
C.递归函数中的形式参数是静态变量
D.递归函数中的形式参数可以根据需要自己定义存储类型
★第3题:
阅读程序,选择程序的输出结果__A
#include
f(intx,inty)
{return(y-x);
}
main()
{int(*g)(int,int);
inta=5,b=6,c=2;
g=f;
c=(*g)(a,b);
printf(%d\n”,c);
}
A.1
B.2
C.3
D.前面3个答案均是错误的
第4题:
阅读程序,选择程序的输出结果__D
#include
char*p="abcdefghijklmnopq”;
main()
{while(*p++!
='e');
printf(%c\n:
*p);
}
A.c
B.d
C.e
D.f
★第6题:
阅读程序,选择程序的输出结果―D
#include
voidprtv(int*x)
{printf("%d\n”,++*x);
}
main()
{inta=25;
prtv(&a);
}
A.23
B.24
C.25
D.26
第7题:
阅读程序,选择程序的输出结果—B―o
#include
main()
{staticchara[]=language",b[]="program;
char*ptr1=a,*ptr2=b;
intk;
for(k=0;k<7;k++)
if(*(ptr1+k)==*(ptr2+k))
printf("%c”,*(ptM+k));
}
A.gae
B.ga
C.language
D.有语法错误
★第8题:
函数调用strcat(strcpy(str1,str2),str3)的功能是—C。
A.将串st门复制到串str2中,然后再连接到str3之后
B.将串st门连接到串str2之后,再复制到str3之中
C.将串str2复制到串st门中,然后再将串str3连接到串str1之后
D.将串str2复制到串st门中,再将串stM连接到str3之后
★第9题:
设有以下程序段,则在main函数中使用语句__D是无意义的。
main()
{intmin();
inta,b,c,(*p)();
p=min;
…
}
min(x,y)
intx,y;
{
…
}
A.printf("%d\n”,min(a,b));
B.c=min(a,b);
C.c=(*p)(a,b);
D.p++;
第10题:
已知staticinta[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是
AQ
A.*(a+1)
B.*(a[1]+2)
C.a[1]+3
D.a[0][0]
第11题:
已知inti,x[3][4];则不能将x[1][1]的值赋给变量i的语句是—C
A.i=*(*(x+1)+1)
B.i=x[1][1]
C.i=*(*(x+1))
D.i=*(x[1]+1)
★第12题:
当c的值不为0时,在下列选项中能够将c的值赋给变量a、b的是
C.
A.c=b=a;
B.(a=c)||(b=c);
C.(a=c)&&(b=c);
D.a=c=b;
第13题:
函数的功能是交换变量x和y中的值,且通过正确调用返回交换的结果。
能正确执行此功能的函数是—D―o
A.funa(int*x,int*y)
{int*p;
*p=x;*x=*y;*y=*p;
}
B.funb(intx,inty){intt;
t=x;x=y;y=t;}
C.func(int*x,int*y)
{*x=*y;*y=*x;
}
D.fund(int*x,int*y)
{*x=*x+*y;*y=*x-*y;*x=*x-*y;
}
第14题:
已知intx[]={1,3,5,7,9,11},*ptr=x;则不能正确引用数组元素的语
句是B。
A.*(ptr--)
B.*(--ptr)
C.*(ptr++)
D.*(++ptr)
第15题:
已知int*ptr1,*ptr2;均指向同一个int类型一维数组中的不同元素,k为int类型变量,则下面错误的赋值语句是—B―o
A.k=*ptr1+*ptr2;
B.ptr2=k;
C.ptr1=ptr2;
D.k=*ptr1*(*ptr2);
★第16题:
已知chars1[10],*s2="ab\0cdef”;则执行语句strcpy(s1,s2);后,变
量si的内容为A。
A.ab
B.cdef
C.ab\0cdef
D.内容不定
第17题:
以下有关宏替换叙述中,错误的是—D―o
A.宏替换不占用运行时间
B.宏无类型名
C.宏替换只是字符替换
D.宏名必须用大写字母表示
★第18题:
C语言主函数main最多允许有B个参数。
A.1
B.2
C.0
D.3
★第19题:
C语言的编译系统对宏定义是—D―o
A.在程序运行时进行替换处理
B.在程序连接时进行处理
C.和源程序中其他C语句同时进行编译的
D.在对源程序中其他成分正式编译之前进行处理的
第20题:
已知int**p;则变量p是_B。
A.指向int的指针
B.指向指针的指针
C.int型变量
D.以上3种说法均是错误的
★第21题:
已知inti;char*s="'b";执行语句for(i=0;*s++;i++);
之后,变量i的结果是__Bo
A.7
B.8
C.9
D.以上3个答案都是错误的
第22题:
已知inti=0,j=1,*p=&i,*q=&j;错误的语句是D。
A.i=*&j;
B.p=&*&i;
C.j=*p++;
D.i=*&q;
第23题:
已知inta[尸{1,2,3,4,5,6,7,8,9,10,11,12},*p=a;则值为3的表达式
是A0
A.p+=2,*(p++)
B.p+=2,*++p
C.p+=3,*p++
D.p+=2,++*p
★第24题:
已知inta[3][4],*p=a;p+=6;那么*pffi__D的值相同。
A.*(a+6)
B.*(&a[0]+6)
C.*(a[1]+2)
D.*(&a[0][0]+6)
第25题:
已知inta[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int(*ptr)[3]=a,*p=a[0];
则以下能够正确表示数组元素a[1][2]的表达式是__Do
A.*((西+1)[2])
B.*(*(p+5))
C.(*ptr+1)+2
D.*(*(a+1)+2)
第26题:
已知char**s;正确的语句是__B。
A.s="computer;
B.*s="computer”;
C.**s="computer”;
D.*s='A';
★第27题:
已知chars[20]="programming",*ps=s;则不能引用字母o的表达
式是A。
A.ps+2
B.s[2]
C.ps[2]
D.ps+=2,*ps
第28题:
已知charb[5],*p=b;则正确的赋值语句是_C__。
A.b="abcd;
B.*b="abcd”;
C.p="abcd”;
D.*p="abcd”;
★第29题:
已知chars[100];inti;则在下列引用数组元素的语句中,错误的表小形式是D.
A.s[i+10]
B.*(s+i)
C.*(i+s)
D.*((s++)+i)
第30题:
已知chars[10],*p=s;则下列语句中,错误的语句是__B。
A.p=s+5;
B.s=p+s;
C.s[2]=p[4]
D.*p=s[0];
第31题:
(103)
以下程序的输出结果是—D―o
#include
main(){
intx=10,y=10;
printf(%d%d\n:
x--,--y);
A.1010
B.99
C.910
D.109
第32题:
已知double*p[6];它的含义是―C―。
A.p是指向double类型变量的指针
B.p是double类型数组
C.p是指针数组
D.p是数组指针
★第33题:
说明语句int*(*p)();的含义是—D―o
A.p是一个指向int型数组的指针
B.p是指针变量,它构成了指针数组
C.p是一个指向函数的指针,该函数的返回值是一个整型
D.p是一个指向函数的指针,该函数的返回值是一个指向整型的指针
第34题:
已知inta,*p=&a;则下列函数调用中错误的是D。
A.scanf("%d”,&a);
B.scanf("%d",p);
C.printf("%d”,a);
D.printf("%d”,p);
第35题:
已知int*p,a;则语句p=&a;中的运算符&的含义是D。
A.位与运算
B.逻辑与运算
C.取指针内容
D.取变量地址
第36题:
下面程序的功能是将字符串s中所有的字符“c”删除。
请选择填空#include
main()
{chars[80];
inti,j;
gets(s);
for(i=j=0;s[i]!
='\0';i++)
if(s[i]!
=,c,)As[j]!
='\0';
puts(s);
}
A.s[j++]=s[i];
B.s[++j]=s[i];
C.s[j]=s[i];j++;
D.s[j]=s[i]
第37题:
阅读下列程序,选择程序的运行结果—B.
#include
main()
{inti,k,a[10],p[3];
k=5;
for(i=0;i<10;i++)
a[i]=i;
for(i=0;i<3;i++)p[i]=a[i*(i+1)];
for(i=0;i<3;i++)
k+=p[i]*2;
printf(%d\n”,k);
}
A.20
B.21
C.22
D.23
★第38题:
下述程序的输出结果是__AO
#include
main()
{printf(%f”,2.5+1*7%2/4);
}
A.2.500000
B.2.750000
C.3.375000
D.3.000000
★第39题:
下面程序的输出结果是—B―o
#include
main()
{printf(%d\n”,NULL);
}
A.-1
B.0
C.1
D.程序是错误的
第40题:
在下面的程序段中,每行前面的数字表示行号,则下面程序
1main()
2{
3inta[3];
4inti;
5for(i=0;i<3;i++)scanf(%d[&a[i]);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf(%f\n”,a);
8}
A.没有错误
B.第5行有错误
C.第6行有错误
D.第7行有错误
★第41题:
在下面的程序段中,每行前面的数字表示行号,则下面程序
1main()
2{
3floata[10];
4inti;
5for(i=0;i<3;i++)scanf(%d[&a[i]);
6for(i=1;i<3;i++)a[0]=a[0]+a[i];
7printf(%f\n”,a[0]);
8}
A.没有错误
B.第3行有错误
C.第5行有错误
D.第7行有错误
★第42题:
下面程序段的运行结果是__B__O
charc[]="\t\v\\\0will\n";
printf(%d”,strlen(c));
A.14
B.3
C.9
D.字符串中有非法字符,输出值不确定
第43题:
下面程序段的运行结果是—D―(其中〜表示空格)。
chara[7]="abcdef”,b[4]='ABC”;
strcpy(a,b);
printf(%c”,a[5]);
A.~
B.\0
C.e
D.f
第44题:
若要求:
如果字符串s1大于字符串s2则要执行if语句的语句1,应当使用D。
A.if(s1>s2)
B.if(strcmp(s1>s2))
C.if(strcmp(s2>s1)>0)
D.if(strcmp(s1>s2)>0)
第45题:
已知chara[20],b[20];则以下正确的输入语句是B
A.gets(a,b);
B.scanf(%s%s”,a,b);
C.scanf(%s%s”,&a,&b);
D.gets(a"),gets(b");
第46题:
若二维数组a由m列,则在a[i][j]之前的元素个数为—B
A.j*m+i
B.i*m+j
C.i*m+j-1
D.i*m+j+1
第47题:
下列数组说明语句中错误的是―B—o
A.doublex[5]={2.0,4.0,6.0,8.0,10.0};
B.inty[5]={0,1,3,5,7,9};
C.charc1[]={'1','2','3','4','5'};
D.charc2[]={'\x10','\xa','\x8'};
第48题:
在C语言中,二维数组元素在内存中的存放顺序是
A.按行存放
B.按列存放
C.由用户自己定义
D.由编译器决定
★第49题:
已知staticinta[3][4];则数组a中个元素__B
A.可在程序的运行阶段得到初值0
B.可在程序的编译阶段得到初值0
C.不能得到确定的初值
D.可在程序的编译或运行阶段得到初值0
★第50题:
语句typedeflongclass的作用是D。
A.建立了一种新的数据类型
B.定义了一个整型变量
C.定义了一个长整型变量
D.定义了一个新的数据类型标识符
已知staticinta[3][4]={0};则下面正确的叙述是__D。
A.只有元素a[0][0]可以得到初值0
B.此说明语句是错误的
C.数组a中每个元素都可得到初值,但其值不一定为0
D.数组a中每个元素均可得到初至0
第52题:
以下能对外部的二维数组a进行初始化错误的语句是—C—o
A.inta[2][3]={0};
B.inta[][3]={{1,2},{0}};
C.inta[2][3]={{1,2},{3,4},{5,6}};
D.inta[][3]={1,2,3,4,5,6};
★第53题:
以下能对外部的二维数组a进行正确初始化的语句是__Bo
A.inta[2][]={{1,0,1},{5,2,3}};
B.inta[][3]={{1,2,3},{4,5,6}};
C.inta[2][4]={{1,2,3},{4,5},{6}};
D.inta[3][尸{{1,0,1},{},{1,1}};
★第54题:
(105)
为了求i的3次方,请选择一个表达式填入D,使程序可以正确执行。
#defineCUBE(x)(x*x*x)
main()
{inti=4;
print(\n%d”,CUBE());
}
A.i*i*i
B.x*x*x
C.x
D.i
第55题:
已知inta[10];则对a数组元素的正确引用是_D―。
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
★第56题:
在C语言中,引用数组元素时,其数组下标的数据类型允许是
__C。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
★第57题:
已知charstr[]="”「则执行语句:
printf(%d”,strlen(str));
的结果是C.
A.3
B.4
C.6
D.12
第58题:
下面关于字符串的说明中,错误的是__A—。
A.charstr[7]="FORTRAN”;
B.charstr[尸"FORTRAN”;
C.char*str="FORTRAN”;
D.char
str[]={'F','O','R','「,'R',‘A':
N'「\0'};
第59题:
以下程序段的输出是A。
staticchara[]=-12345”;
intk=0,symbol,m;
if(a[k]=='+'||a[k]='-')symbol=(a[k++]=='+')?
1:
-1;
for(m=0;a[k]>='0'&&a[k]<='9';k++)m=m*10+a[k]-'0';
printf(number=%d\n",symbol*m);
A.number=-12345
B.number=12345
C.number=-10000
D.number=10000
第60题:
已知charstr1[10],str2[10]={books”};则在程序中能够将字符串books”赋给数纬Str1的正确语句是B。
A.str1={books"};
B.strcpy(str1,str2);
C.str1=str2
D.strcpy(str2,str1);
★第61题:
若有以下语句,则正确的描述是—B―o
staticcharx[]=12345”;
staticchary[]={'1','2','3','4','5'};
A.x数组和y数组的长度相同
B.x数组长度大于y数组长度
C.x数组长度小于y数组长度
D.x数组等价于y数组
在下述对C语言字符数组的描述中错误的是—C—O
A.字符数组可以存放字符串
B.字符数组中的字符串可以进行整体输入/输出
C.可以在赋值语句中通过赋值运算符“=对字符数组整体赋值
D.字符数组的下标从0开始
第63题:
要说明一个有10个int元素的数组,应当选择语句Ao
A.inta[10];
B.inta[2,5];
C.inta口;
D.int*a[10];
★第64题:
已知chars[5],c;registercharb;则调用函数scanf的正确语句是
Do
A.scanf(%s%c”,s,c);
B.scanf(%d%c”,&b,&c);
C.scanf(%d%c:
b,&c);
D.scanf(%s%c”,s,&c);
第65题:
错误的说明语句是__Do
A.staticcharword[]={'T','u','r','b','o',
'\0'};
B.staticcharword[]={Turbo\0"};
C.staticcharword□-Turbo\0”;
D.staticcharword[]='Turbo\0'
★第66题:
请选择下列程序的运行结果A。
#include
intd=1;
fun(intp)
{intd=5;
d+=p++;
printf(%d”,d);
}
main()
{inta=3;
fun(a);
d+=a++;
printf(%d”,d);
}
A.84
B.96
C.94
D.85
第67题:
请选择下列程序的运行结果__D
#include
try()
{staticintx=3;
x++;
return(x);
}
main()
{inti,x;
for(i=0;i<=2;i++)x=try();
printf(%d\n:
x);
}
A.3
B.4
C.5
D.6
★第68题:
请选择下列程序的运行结果―C
#include
fun(int*p)
{inta=10;
*p=a;
++a;
}main()
{inta=5;
fun(&a);
printf(%d\n:
a);
}
A.5
B.6
C.10
D.11
★第69题:
以下错误的描述为__Co
A.在函数之外定义的变量称为外部变量,外部变量是全局变量
B.在一个函数中既可以使用本函数中的局部变量,又可以使用
外部变量
C.外部变量定义和外部变量声明的含义相同
D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用。
★第70题:
在一个C源程序文件中,若要定义一个只允许在该源文件中所有函数使用的变量,则该变量需要的存储类别是—D―o
A.extern
B.register
C.auto
D.static
★第71题:
C语言中,对于存储类型为—D―的变量,只有在使用它们时才占用内存单元。
A.static和auto
B.register和extern
C.register和static
D.auto和register
第72题:
C语言规定,调用一个函数时,实参变量和形参变量之间的数据传
递方式是B。
A.地址传递
B.值传递
C.由实参传给形参,弁由形参传回来给实参
D.由用户指定传递方式
以下描述错误的是—D―o
A.不同函数中可以使用相同的变量名
B.形式参数是局部变量
C.一个函数内部定义的变量只能在本函数范围有效
D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效★第74题:
C语言中函数返回值的类型是由__D决定的。
A.return语句中的表达式类型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 试题 选择题 答案 解析