《C程序设计》期末复习练习试题和参考题答案3.docx
- 文档编号:11679017
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:17
- 大小:22.80KB
《C程序设计》期末复习练习试题和参考题答案3.docx
《《C程序设计》期末复习练习试题和参考题答案3.docx》由会员分享,可在线阅读,更多相关《《C程序设计》期末复习练习试题和参考题答案3.docx(17页珍藏版)》请在冰豆网上搜索。
《C程序设计》期末复习练习试题和参考题答案3
《C程序设计》期末复习练习题及参考答案(3)
一、单项选择题
1.若有定义int(*p)[4],则标识符p是一个。
A)指向整型变量的指针变量
B)指向函数的指针变量
√C)指向有四个整型元素的一维数组的指针变量
D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针
2.下列对字符串的定义中,错误的是:
。
√A)charstr[7]="FORTRAN";
B)charstr[]="FORTRAN";
C)char*str="FORTRAN";
D)charstr[]={'F','O','R','T','R','A','N',0};
3.针对下面程序段,下面哪些说法是正确的?
#include
voidSwap(int*x,int*y);
main()
{inta,b;
a=5;
b=9;
Swap(&a,&b);
printf("a=%d,b=%d",a,b);
}
voidSwap(int*x,int*y)
{int*pTemp;
*pTemp=*x;
*x=*y;
*y=*pTemp;
}
A)程序运行结果为乱码;
B)程序运行后将导致程序崩溃;
C)程序编译时出错导致程序无法运行;
√D)程序执行了危险的操作;
4.已知学生记录描述为:
structstudent
{intno;
charname[20];
charsex;
struct
{intyear;
charmonth[15];
intday;
}birth;
};
structstudents;
设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____
A)s.birth.year=1984;s.birth.month="11";s.birth.day=11;
B)s.birth.year=1984;s.birth.month=11;s.birth.day=11;
√C)s.birth.year=1984;strcpy(s.birth.month,"11");s.birth.day=11;
D)s.birth.year=1984;strcpy(s.birth.month,11);s.birth.day=11;
5.要使下面程序的输出1,2,34,则从键盘输入的数据格式应为。
#include
main()
{chara,b;
intc;
scanf("%c%c%d",&a,&b,&c);
printf("%c,%c,%d\n",a,b,c);
}
A)1234B)1,2,34C)’1’,’2’,34√D)1234
6.以下选项中为合法整型常量的是()。
A)-080√B)-80C)-8e1.0D)-80.0e
7.若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。
A)4B)16√C)32D)52
8.下列程序执行后的输出结果是()。
#include
voidfunc(int*a,intb[])
{b[0]=*a+6;}
main()
{inta,b[5];
a=0;b[0]=3;
func(&a,b);printf("%d\n",b[0]);
}
√A)6B)7C)8D)9
9.设有定义chargrade='A';则以下给出的程序运行结果或说法正确的是()。
switch(grade)
{case'A':
case'B':
case'C':
printf(">=60pass!
\n");
case'D':
printf("<60\n");
default:
printf("error!
\n");
}
A)>=60pass!
B)<60C)error!
√D)以上结果都不正确
10.以下程序执行后的输出结果是()。
#include
intmain()
{inti=1,j=1,k=2;
if((j++||k++)&&i++)
printf("%d,%d,%d\n",i,j,k);
return0;
}
A)1,1,2B)2,2,1√C)2,2,2D)2,2,3
11.执行完循环语句for(i=1;i<10;i++);后,以下关于变量i的值及循环体的执行次数的说法正确的是()。
A)i的值是9,循环体执行9次B)i的值是9,循环体执行10次
√C)i的值是10,循环体执行9次D)i的值是10,循环体执行10次
12.以下程序的运行结果是()。
#include
intmain()
{intm,n;
for(m=0,n=10;m printf("%d,%d\n",m,n); return0; } A)6,7B)7,6√C)9,7D)7,9 13.以下程序的运行结果是()。 #include intmain() {inti; inta[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d",a[2-i][i]); return0; } A)159√B)753C)357D)591 14.下列可用于C语言用户标识符的一组是()。 A)void,define,WORD√B)a3_3,_123,Car C)For,-abc,IFCaseD)2a,DO,sizeof 15.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。 . A)a<>0B)! aC)a=0√D)a! =0 16.以下程序的输出结果是()。 #include voidmain() {intx=10,y=10; printf("%d%d\n",x--,--y); } A)99√B)109C)910D)1010 17.若有定义: char*name[]={"Followme","BASIC","GreatWall","FORTRAN"};,则name[2]的值是()。 A)字符'G'B)字符串"GreatWall" √C)字符串"GreatWall"的首地址D)不确定 18.有以下程序,程序执行后的输出结果是()。 #include voidfun(char*p) {char*q=p; while(*q! ='\0') {(*q)++; q++; } } intmain() {chara[]={"Program"},*p; p=&a[3]; fun(p); printf("%s\n",a); return0; } √A)ProhsbnB)PrphsbnC)ProgsbnD)Program 19.下面列出的C语言提供的合法的数据类型关键字是()。 A)Double√B)shortC)integerD)Char 20.字符(char)型数据在微机内存中的存储形式是()。 A)反码B)补码C)EBCDIC码√D)ASCII码 21.设inta=12,则执行完语句a+=a-=a*a后,a的值是()。 A)552B)264C)144√D)-264 23.能够完成如下函数计算的程序段是()。 -1x<0 Y=0x=0 1x>0 A)y=1;√B)if(x>=0) if(x! =0)if(x>0)y=1; if(x>0)y=1;elsey=0; elsey=0;elsey=-1; C)y=0;D)y=-1; if(x>=0)if(x>0)y=1; if(x>0)y=1;elsey=0; elsey=-1; 24.有如下程序 #include voidmain() {intx=1,a=0,b=0; switch(x) { case0: b++; case1: a++; case2: a++;b++; } printf("a=%d,b=%d\n",a,b); } 该程序的输出结果是()。 √A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2 25.下面程序的输出结果是()。 #include voidmain() {inti; for(i=1;i<6;i++) {if(i%2! =0){printf("#");continue;} printf("*"); } printf("\n"); } √A)#*#*#B)#####C)*****D)*#*#* 26.C语言中while和do-while循环的主要区别是()。 . √A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内 D)do-while的循环体不能是复合语句 27.当对两个字符串进行比较时,应该使用的函数是()。 A)strcat√B)strcmpC)strcpyD)strlen 28.以下程序的运行结果是()。 #include voidmain() {int*p,a=1; p=&a; *p=10; printf("%d\n",a); } A)1√B)10C)不能确定D)11 29.设有定义inta[]={1,5,7,9,11,13},*p=a+3;则*(p-2),*(a+4)的值是()。 √A)511B)19C)59D)有错误 30.若i为整型变量,则以下循环的次数是()。 for(i=2;i==0;)printf(“%d”,i--); A)无限次√B)0次C)1次D)2次 二、填空题 1.C语言标识符由___字母______、____数字______和______下划线_____来构造。 2.设有定义: FILE*fp;,请将以下打开文件的语句补充完整,以便可以向文本文件readme.txt的最后续写内容。 fp=fopen("readme.txt",“a”); 3.若有说明和语句: inta=25,b=60;b=++a;则b的值是 26 。 4.若intx=5;while(x>0)printf(“%d”,x--);的循环执行次数为 5 。 5.若有inta[5],*p=a;则p+2表示第 三 个元素的地址。 6.若有说明和语句: inta=5,b=6,y=6;b-=a;y=a++则b和y的值分别是 1 、 5 。 7.已知整型变量a=3,b=4,c=5,写出逻辑表达式a||b+c>c&&b-c的值是 1 。 8.在C语言中,变量的存储类别有四种,它们是: 自动(auto)、寄存器(register)、静态(static)、外部(extern)。 9.如果一个变量在某个范围内是有效的,该范围就称为变量的作用域。 自动(auto)存储类别的局部变量,其作用域为: 从定义的位置起,到函数体(或复合语句)结束为止 10.设有定义inta,b;写出满足条件“a是3的倍数,或者b不是5的倍数”的逻辑表达式: a%3==0||b%5! =0。 三、程序运行结果分析题 1. main() {inti,j,x=0; for(i=0;i<2;i++) { x++; for(j=0;j<3;j++) { if(j%2)continue; x++; } x++; } printf("x=%d\n",x); } 程序运行结果是: x=6 2. #include structdate {intyear; intmonth; intday; }; structdatefunc(structdatep) {p.year=2000; p.month=5; p.day=22; returnp; } main() {structdated; d.year=1999; d.month=4; d.day=23; printf("%d/%d/%d\n",d.year,d.month,d.day); d=func(d); printf("%d/%d/%d\n",d.year,d.month,d.day); } 程序的运行结果是: 1999/4/23 2000/5/22 3. #include main() { chara[]="Hello"; char*p=NULL;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C程序设计 程序设计 期末 复习 练习 试题 参考 答案