C语言程序设计专科复习题.docx
- 文档编号:27739395
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:28
- 大小:25.30KB
C语言程序设计专科复习题.docx
《C语言程序设计专科复习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计专科复习题.docx(28页珍藏版)》请在冰豆网上搜索。
C语言程序设计专科复习题
C语言程序设计(专)复习题
一、选择题
1.以下选项中可作为C语言合法整数的是
A)10110BB)0386C)0XffaD)x2a2
2.假定x和y为double型,则表达式x=2,y=x+3/2的值是
A)3.500000B)3C)2.000000D)3.000000
3.以下不能定义为用户标识符是
A)MainB)_0C)_intD)sizeof
4.以下选项中,不能作为合法常量的是
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
5.用C语言编写的代码程序
A)可立即执行B)是一个源程序
C)经过编译即可执行D)经过编译解释才能执行
6.结构化程序由三种基本结构组成,三种基本结构组成的算法
A)可以完成任何复杂的任务B)只能完成部分复杂的任务
C)只能完成符合结构化的任务D)只能完成一些简单的任务
7.以下叙述中正确的是
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号"{"和"}"只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
8.以下选项中可作为C语言合法常量的是
A)-80B)-080C)-8e1.0D)-80.0e
9.以下不能定义为用户标识符的是
A)scanfB)VoidC)_3com_D)int10.在C语言中,合法的长整型常数是
A)OLB)4962710C)324562&D)216D
11.以下有4组用户标识符,其中合法的一组是
A)ForB)4dC)f2_G3D)WORD
-subDOIFvoid
CaseSizeabcdefine
12.以下选项中合法的字符常量是
A)"B"B)'\010'C)68D)D
13.以下叙述中正确的是
A)用C语言实现的算法必须要有输入和输出操作
B)用C语言实现的算法可以没有输出但必须要有输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
14.以下合法的赋值语句是
A)x=y=100B)d--;C)x+y;D)c=int(a+b);
15.设正x、y均为整型变量,且x=10y=3,则以下语句的输出结果是
printf("%d,%d\n",x--,--y);
A)10,3B)9.3C)9.2D)10.2
16.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是
A)INPUTx、y、z;B)scanf("%d%d%d",&x,&y,&z);
C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);
17.以下定义语句中正确的是
A)chara='A'b='B';B)floata=b=10.0;
C)inta=10,*b=&a;D)float*a,b=&a;
18.下列选项中,不能用作标识符的是
A)_1234_B)_1_2C)int_2_D)2_int_
19.有以下定义语句doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是
A)a=a+b=b++B)w%(int)a+b)C)(c+w)%(int)aD)w=a==b;
20.有以下程序
main()
{intm=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是
A)3B)5C)-1D)-2
21.有以下程序
main()
{chara='a',b;
print("%c,",++a);
printf("%c\n",b=a++);
}
程序运行后的输出结果是
A)b,bB)b,cC)a,bD)a,c
22.有以下程序
main()
{intm=0256,n=256;
printf("%o%o\n",mn,n);
}
程序运行后的输出结果是
A)02560400B)0256256C)256400D)400400
23.有以下程序
main()
{inta=666,b=888;
printf("%d\n",a,b);
}
程序运行后的输出结果是
A)错误信息B)666C)888D)666,888
24.有以下程序
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{
case0:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
程序运行后的输出结果是
A)022111B)021021C)000122D)012
25.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是
A)abs(x-y)<10B)x-y>-10&&x-y<10
C)@(x-y)<-10||!
(y-x)>10D)(x-y)*(x-y)<100
26.有以下程序
main()
{
inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是
A)2B)3C)43D)44
27.下列条件语句中,功能与其他语句不同的是
A)if(a)printf("%d\n",x);elseprintf("%d\n",y);
B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);
C)if(a!
=0)printf("%d\n",x);elseprintf("%d\n",y);
D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);
28.有以下程序
main()
{inti=0,x=0;
for(;;)
{
if(i==3||i==5)continue;
if(i==6)break;
i++;
s+=i;
};
printf("%d\n",s);
}
程序运行后的输出结果是
A)10B)13C)21D)程序进入死循环
29.若变量已正确定义,要求程序段完成求5!
的计算,不能完成此操作的程序段是B
A)for(i=1,p=1;i<=5;i++)p*=i;
B)for(i=1;i<=5;i++){p=1;p*=i;}
C)i=1;p=1;while(i<=5){p*=i;i++;}
D)i=1;p=1;do{p*=i;i++;}while(i<=5);
30.有以下程序
main()
{chara,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:
6,5,65,66<回车>。
则输出结果是
A)6,5,A,BB)6,5,65,66C)6,5,6,5D)6,5,6,6
31.以下能正确定义二维数组的是
A)inta[][3];B)inta[][3]=2{2*3};
C)inta[][3]={};D)inta[2][3]={{1},{2},{3,4}};
32.有以下程序
intf(inta)
{returna%2;}
main()
{ints[8]={1,3,5,2,4,6},i,d=0;
for(i=0;f(s);i++)d+=s;
printf("%d\n",d);
}
程序运行后的输出结果是
A)9B)11C)19D)21
29.若有以下说明和语句,intc[4][5],(*p)[5];p=c;能正确引用c数组元素的是
A)p+1B)*(p+3)C)*(p+1)+3D)*(p[0]+2])
30.有以下程序
main()
{inta=7,b=8,*p,*q,*r;
p=&a;q=&b;
r=p;p=q;q=r;
printf("%d,%d,%d,%d\n",*p,"q,a,b);
}
程序运行后的输出结果是
A)8,7,8,7B)7,8,7,8C)8,7,7,8D)7,8,8,7
31.s1和s2已正确定义并分别指向两个字符串。
若要求:
当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
A)if(s1>s2)S;B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S;D)if(strcmp(s1,s2)>0)S;
32.设有定义语句
intx[6]={2,4,6,8,5,7},*p=x,i;
要求依次输出x数组6个元素中的值,不能完成此操作的语句是
A)for(i=0;i<6;i++)printf("%2d",*(p++));
B)for(i=0;i<6;i++)printf("%2d",*(p+i));
C)for(i=0;i<6;i++)printf("%2d",*p++);
D)for(i=0;i<6;i++)printf("%2d",(*p)++);
33.有以下程序
#include
main()
{inta[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL;
*q=*(p+5);
printf("%d%d\n",*p,*1);
}
程序运行后的输出结果是
A)运行后报错B)66C)611D)510
34.有以下定义和语句
inta[3][2]={1,2,3,4,5,6,},*p[3];
p[0]=a[1];
则*p[0]+1)所代表的数组元素是
A)a[0][1]B)a[1][0]C)a[1][1]D)a[1][2]
35.有以下程序
main()
{charstr[][10]={"China","Beijing"},*p=str;
printf("%s\n",p+10);
}
程序运行后的输出结果是
A)ChinaB)BejingC)ngD)ing
36.有以下程序
main()
{chars[]="ABCD",*p;
for(p=s+1;p
}
程序运行后的输出结果是
A)ABCDB)AC)BD)BCD
BCDBCCD
CDCDD
DD
37.在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则
A)称为函数的直接递归调用B)称为函数的间接递归调用
C)称为函数的循环调用D)C语言中不允许这样的递归调用
38.已有定义:
inti,a[10],*p;,则合法的赋值语句是
A)p=100;B)p=a[5];C)p=a[2]+2;D)p=a+2;
39.以下叙述中正确的是
A)局部变量说明为static存储数,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
40.设有定义语句:
charc1=92,c2=92;,则以下表达式中值为零的是
A)c1^c2B)c1&c2C)~c2D)c1|c2
41.程序中对fun函数有如下说明void*fun();
此说明的含义是:
A)fun了数无返回值
B)fun函数的返回值可以是任意的数据类型
C)fun函数的返回值是无值型的指针类型
D)指针fun指向一个函数,该函数无返回值
42.有以下程序
main()
{chars[]"Yes\n/No",*ps=s;
puts(ps+4);
*(ps+4)=0;
puts(s);
}
程序运行后的输出结果是
A)n/NoB)/NoC)n/NOD)Yes
YesYes/No/No/NoYes
43.有以下程序
main()
{unsignedinta;
intb=-1;
a=b;
printf("%u",a);
}
程序运行后的输出结果是
A)-1B)65535C)32767D)-32768
44.有以下程序
main()
{inta;charc=10;
floatf=100.0;doublex;
a=f/=c*=(x=6.5);
printf("%d%d%3.1f%3.1f\n",a,c,f,x);
}
程序运行后的输出结果是
A)16516.5B)1651.56.5C)1651.06.5D)2651.56.5
45.以下选项中非法的表达式是
A)0<=x<100B)i=j==0C)(char)(65+3)D)x+1=x+1
46.有以下程序
main()
{inta=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a
printf("%d,%d\n",k,m);
}
程序运行后的输出结果是
A)0,0B)0,1C)1,0D)1,1
47.有定义语句:
intx,y;,若值11,变量y得到数值12,下面四组输入要通过scanf("%d,%d",&x,&y);语句使变量x得到数形式中,错误的是
A)1112<回车>B)11,12<回车>C)11,12<回车>D)11,<回车>12<回车>
48.设有如下程序段:
intx=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是
A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2002D)输出值为2003
49.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是
A)x=x*100+0.5/100.0;B)x=(x*100+0.5)/100.0;
C)x=(int)(x*100+0.5)/100.0;D)x=(x/100+0.5)*100.0;50.有以下程序
voidfun(int*a,inti,intj)
{intt;
if(i {t=a;a=a[j];a[j]=t; i++;j--; fun(a,i,j); } } main() {intx[]={2,6,18},i; fun(x,0,3); for(i=0;i<4;i++)printf("%2d",x); printf("\n"); } 程序运行后的输出结果是 A)1268B)8621C)8162D)8612 51.有以下说明和定义语句 structstudent {intage;charnum[8];}; structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}}; structstudent*p=stu; 以下选项中引用结构体变量成员的表达式错误的是 A)(p++)->numB)p->numC)(*p).numD)stu[3].age 52.有以下程序 mina() {intx[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;} for(i=0;i<8;i++)printf("%d",x); printf("\n"); } 程序运行后的输出结果是: A)75310246B)1234567C)76310462D)13570246 53.有如下程序 #include main() {FILE*fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为: good,则运行以上程序后文件f1.txt中的内容为 A)goodabcB)abcdC)abcD)abcgood 53~55.以下程序的功能是: 建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请从与下划线处号码对应的一组选若中选择出正确的选项。 #include stuctnode {chardata;structnode*next;}; (53)CreatList(char*s) {structnode*h,*p,*q); h=(structnode*)malloc(sizeof(structnode)); p=q=h; while(*s! ='\0') {p=(structnode*)malloc(sizeof(structnode)); p->data=(54); q->next=p; q=(55); s++; } p->next='\0'; returnh; } main() {charstr[]="linklist"; structnode*head; head=CreatList(str); ... } (53)A)char*B)structnodeC)structnode*D)char (54)A)*sB)sC)*s++D)(*s)++ (55)A)p->nextB)pC)sD)s->next 56.有以下程序 main() {ints=0,a=1,n;scanf("%d",&n);do {s+=1;a=a-2;} while(a! =n); printf("%d\n",s); } } 若要使程序的输出值为2,则应该从键盘给n输入的值是A)-1B)-3C)-5D)0 57.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a;for(b=1;b<=c;b++)s=s+1;则与上述程序段功能等价的赋值语句是 A)s=a+b;B)s=a+c;C)s=s+c;D)s=b+c;58.要求以下程序的功能是计算: s=1+1/2+1/3+……+1/10 main() {intn;floats;s=1.0;for(n=10;n>1;n--)s=s+1/n;printf("%6.4f\n",s); } 程序运行后输出结果错误,导致错误结果的程序行是A)s=1.0;B)for(n=10;n>1;n--)C)s=s+1/n;D)printf("%6.4f\n",s); 59.已定义ch为字符型变量,以下赋值语句中错误的是 A)ch='\';B)ch=62+3;C)ch=NULL;D)ch='\xaa'; 60.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参 61.有以下函数定义: voidfun(intn,doublex){……}若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A)fun(inty,doublem);B)k=fun(10,12.5); C)fun(x,n);D)voidfun(n,x); 62.有以下程序voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=&c2;fun(p1,p2);printf("%c%c\n",c1,c2);} 程序运行后的输出结果是A)AbB)aaC)AaD)Bb 63.若程序中已包含头文件stdio.h,以下选项中,正确运用指针变量的程序段是 A)int*i=NULL;B)float*f=NULL; scanf("%d",i);*f=10.5;C)chart='m',*c=&t;D)long*L; *c=&t;L='\0'; 64.有以下程序#include main(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 专科 复习题