C语言期末复习文档docx.docx
- 文档编号:29191117
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:27
- 大小:57.54KB
C语言期末复习文档docx.docx
《C语言期末复习文档docx.docx》由会员分享,可在线阅读,更多相关《C语言期末复习文档docx.docx(27页珍藏版)》请在冰豆网上搜索。
C语言期末复习文档docx
期末考试题型:
程序设计基础题型举例
•、选择题
1、C语言规定:
在一个源程序中,main函数的位置—B。
A.只能在程序头部;B.可以在程序任何位置;
C.必须在#include^Uttdefine语句后面;D.只能在程序最后面。
2、在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为_A_。
A.RUNB.FILEC.EDITD.OPTION
3、下面标识符中止确的是—Bo
A.$a#bB.sumC.1A23BCD.Y・M・D
4、在C语言屮(以16位PC机为例),存储一个整型、字符型、双精度实型变量
所需的字节数是C_0
A.4、1、4B.4、1、4
C.2、1、8D.2、2、8
5、下面的变量说明中B是止确的。
A.Char:
a,b,c;B・Chara,b,c;
C.Chara;b;c;D.Chara,b,c
6、判断char型变量ch是否为大写字母的止确表达式是—C
C.(ch>=/A,)&&(ch<=T)D.(W<=ch)AND(/Z,>=ch)
7、已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是D
if(x>y)z=x;x=y;y=z;
C.x=20,y=30,z=10
D.x=20,y=30,z=30
B.x=20,y=30,z=20
A.x=10,y=20,z=30
intn=0;while(n++<=2);printf(“%d”zn);
A.2B.3C.4D.死循环
9、下面程序的功能是输岀如右图所示形式的金字塔图案。
main()
{inti,j;
for(i=l;i<=4;i++)
{for(j=l;j<=4-i;j++)printf(““);
for(j=l;j<=;j++)printf("〃);
printf(〃\n〃);
}
}
在下划线处应填入的是B
A.iB.2*i-lC.2*i+lD.i+2
10、下列数组定义方式不止确的语句是—A。
A.intx[3]={12,13,14,15};
B.chary[]={zh,,ze\T,T,V};
C.charx[5];
D.chary[][10]二{"Hi,Hello〃};
□、c语言规定,数组名做实参时,它和对应形参Z间的数据传递方式为_c
A.由实参传给形参,再由形参传回给实参B.单向值传递
C.地址传递D.由用户指定传递方式
12、以下正确的函数定义形式是—D_o
A.doublefun(intx,y);B.doublefun(intx;inty);
C.doublefun(x,y);D.doublefun(intx,inty);
13、执行下列程序后,其结杲为_A_。
inta[]={2,4,6,8,10,12},*p;
p=a;
*(p+4)二2;
printf("%d,%d\n〃,*p,*(p+4));
A.2,2B.0,10C.2,10D.0,2
14、下面程序的输出结杲是:
_Do
#definePOWER(x)(x*x)
main()
{inti=4;printf("%d,,/POWER(i-2));}
分析:
4-2*4-2=-6
A.-9B.-7C.5D.-6
15、有下列结构体,对该结构体变量stu的成员项引用不正确的是_A-
structstudent
{intm;
floatn;
}stu,*p;
A.p.stu.nB.p->mC.(*p).mD.stu.n
16、一个C程序的执行是从Bo
A.main()函数开始,直到最后一个函数结束
B.main()函数开始,直到main()函数结束
C.第一个语句开始,直到最后一个语句结束
D.第一个函数开始,直到最后一个函数结束
17、下面标识符中止确的是_A-
A.numberB.123abcC.*a#b*cD.P・H・D
18、在使用TurboC2.0环境编辑程序时,编译某程序使用的菜单项为—C_。
A.FILEB.COMPILEC.RUND.OPTION
19、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排
列顺序为C_O
A.char B.char=int C.char D.char=int=longint<=float 20、下面的变量说明中B是止确的。 A.char: a,b,c;B.chara,b,c; C.chara;b;c;D.chara,b,c 21、C语言程序中出现条件分支语句if-else时,else与_(: _组成配对关系。 A.同一复合语句内部的讦B.在其之前任意的讦 C.在其2而未配对的最近的讦D.首行位置相同的if 22、已知intx=10,y=20,z=30;以卜-语句执彳亍后x,y,z的值是D。 B・x=20,y=30,z=20 if(x>y)z=x;x=y;y=z; A.x=10,y=20,z=30 C.x=20,y=30,z=10 D.x=20,y=30,z=30 23、从循环体内某一层跳出, 继续执行循环外的语句是: C.break语句D.空语句 24、判断char型变量ch是否为大写字母的正确表达式是—B—。 A.zA,<=ch<=zZ,B.(ch>=/A,)&&(ch<=zZ,) C.(ch>=W)&(ch<=/Z,)D.(W<=ch)AND(/Z,>=ch) 25、下而程序的输出结果是: B_o #definePOWER(x)(x*x) main() {inti=2;printf(H%dHzPOWER(i-2));} A.-4B.-6C.5D.-9 26、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为一 _C_O A、地址传递由实参传给形参,再由形参传冋给实参 C、单向值传递D、由用户指定传递方式 27、下列数组定义方式不正确的语句是—A—o A.intx[3]={12,13,14}; B.chary[]={zh,,ze\T,T,V}; C.charx[5]; D.chary[][2]={//Hi7Hello,,}; 28、以下正确的函数定义形式是—A—o A.doublefun(intx,inty);B.doublefun(intx;inty) C・doublefun(x,y)D・doublefun(intx,y) 29、执行下列程序后,其结杲为—D—o inta[]={l,3,5,7,9,11};*p; p=a; printf(“%d,%d\n〃,*p,*(p+2)); A.0,9B.0,3C.1,7D.1,5 30、char(*p)[5];该语句声明d是一个A。 A)指向含冇5个元素的一维字符型数组的指针变量p B)指向t度不超过5的字符串的指针变量p C)有5个元素的指针数组p,每个元素可以指向一个字符串 D)有5个元索的指针数组p,每个元索存放一个字符串 31、C语言源程序的某文件中定义的全局变量的作用域为: _C—。 A)本文件的全部范围B)本函数的全部范围 C)从定义该变量的位置开始到本文件结束D)本程序的所有文件的范围 32、已知学生记录描述为: structstudent intno; charname[20]; charsex; struct {intyear;charmonth[20];intday; Jbirth; };structstudents; 设变量s屮的〃生日〃应是“1984年口月11日〃,下列对“生日〃的正确赋值方式是 A)s.birth.year=1984; B)s.birth.year=1984; C)s.birth.year=1984; D)s.birth.year=1984; s.birth.month="11";s.birth.day=11; s.birth.month=11;s.birth.day=11; strcpy(s.birth.month,"11");s.birth.day=11; s.birth.month[]={"11"};s.birth.day=11; 33.若有二维数组定义语句: inta[3][4];则下面能正确引用元素a[i][j]的为: A)*(a+j*4+i)B)*(a+i*4+j)C)*(a[i]+j)=*(*(a+i)+j)D)*((*a+i)+j) 34.在下面的语句中: 只有一个在功能上与其他三个语句不等价(其中si和s2表示某个C语句),这个不等价的语句是D。 A)if(a)si;elses2;B)讦(! a)s2;elsesi; C)if(a! =O)si;elses2;D)if(a==O)si;elses2; ・以下正确的描述是—A。 A)对共用体初始化时,只能对第一个成员进行初始化,每一•瞬吋起作用的成员是最后一次为其赋值的成员 B)结构体可以比较,但不能将结构体类型作为函数返回值类型 C)函数定义可以嵌套 D)关键字typedef用于定义一种新的数据类型 36.下列的定义中,正确使用字符串初始化的是Co A) char str[7] ="FORTRAN"; B) char str[]= {FQ,RJ;R,A,N,0}; C) char *str= "FORTRAN"; D) char str[]= 37.判断字符串si与字符串S2相等,应当使用: _Do A)讦(si=s2)B)讦(strcmp(sl,s2)) C)if(! strcmp(sl,s2))D)if(strcmp(sl,s2)=0) 38.二维数组a有m行n列,则在汕川]之前的元素个数为B。 A.j*n+iB.i*n+jC.i*n+j・lD.i*n+j+l 43.以下不能正确定义二维数组的选项是一D。 A)inta[2][2]={{1},{2}};B)inta[]⑵二{123,4}; C)inta[2][2]={{l},2,3};D)inta[2][]={{l,2},{3,4}}; 39.若有二维数组定义语句: inta[3][4];则下面对元素a[i][j]不正确的引用方式是: B。 A)*(&a[i][j])B)*(a+4*i+j) C)*(a[i]+j)D)*(*(a+i)+j) 40.如果inti=3,则printfC^d",・i++)的输出结果是,i的值是 A_o A)-34B)-44 C)-43D)-33 41.判断字符串si与字符串s2相等,应当使用: D。 A)if(sl=s2) B)if(strcmp(sl,s2)) C)if(! strcmp(sl,s2)) D)if(strcmp(sl,s2)=0) 42.二维数组a有m行n列,则在a[i][j]之前的元素个数为B。 A.j*n+iB.i*n+jC.i*n+j・lD.i*n+j+l 43.以下选项中可作为C语言合法整数的是一C A)10110BB)0386C)0XffaD)x2a2 44.以下不能定义为用户标识符的是_Q_ AjscanfB)VoidC)_3com_D)int 45.若已定义的函数有返向值,血以下关于该函数调用的叙述中错误的是_ A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(X) 46.已定义c为字符型变量,则下列语旬中正确的是一C A)c=,97,;B)c=H97H;C)c=97;D)c="an; 47•以下能正确定义一维数组的选项是B A)intnum[]; B)#defineN100intnum[N]; C)intnum[0..100]; D)intN=100;intnum[N]; 48|・下列选项中正确的语句组是D A)chars[8];s={"Beijing"};B)char*s;s={"Beijing"}; C)chars[8];s=HBeijing";D)char*s;s="Beijing"; 49.已定义以下函数 fun(char*p2,char*pl) {while((*p2=*pl)! ='\0,){pl++;p2++;}} 函数的功能是A A)将pl所指字符串复制到p2所指内存空间 B)将pl所指字符串的地址赋给指针p2 C)对pl和p2两个指针所指字符串进行比较 D)检查pl和p2两个指针所指字符串中是否有、0’ 50.若fp已止确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A. A)0B)1C)-1D)一个非0值 51.下列关于C语言数据文件的叙述中正确的是D. A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文木文件 D)文件曲数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 52.C语言源程序的某文件中定义的全局变量的作用域为: —C_o A)本文件的全部范围 B)本函数的全部范围 C)从定义该变量的位置开始到木文件结朿 D)本程序的所有文件的范围 53.C语言规定,简单变量作为实参时,他和对应形参Z间的数据传递方式是: A A)单向值传递B)地址传递C)相互传递D)由用户指定方式 54.|以,卜•语句或语句组中•能止确进行字符命赋值的是一D B)chars[10];s="right! n; D)char*sp="right! "; A)char*sp;*sp="right! "; C)chars[10];*s=,,nght! "; for(i二O;ivlO;i++) if(i(=5)break; C)5D)10 最基本的数据类型包括: _C逻辑型字符型 B)整型、字符型、数组 D)整型、实型、结构体 C 则循坏结束后i的值为_ A)0B)1 56.C语言中, A)整型、实型、 C)整型、实型、5? |,以下说法正确的是 A)C程序总是从第一个定义的函数开始执行 B)在C程序中,要调用的函数必须在main()函数中定义 C)C程序总是从main()函数开始执行 D)C程序的main()函数必须放在程序的开始部分 58.假定int类型变量占用两个字节,有定义: intx[10]={0,2,4};,则数组x在内存中所占字节数是一B A)3B)6C)10D)20 59•若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为A. A)0B)1C)-1D)一个非0值 60.下列关于C语言数据文件的叙述中正确的是D・ A)文件由ASCII码字符序列组成,C语言只能读写文本文件 B)文件由二进制数据序列组成,C语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 二、填空题 1、C源程序的基木单位是函数o 2、在C语言程序设计中,正确的标识符由—下划线_、—数字—和—字母—组成。 3、设整型变量n的值为2,执行语句5+二叶二n*n「后,n的值是—-4—。 4、为表示关系x 5、已知字符A的ACSTT码值为65,以下语句的输出结果是—66。 charch二8; printf("%c,%d\n: ch,ch); 6、在定义inta[3][4][2];后,第5个元索是—a[0][2][0]_,最后一个元 素的首地址为—a[2][3][0]o 7、下面程序段的运行结果是efgh。 charstr[]="abcdefgh"/p=str; printf(”%s”,p+4); 8、一个C源程序至少应该包含一个_main函数。 9、在C语言中,输入操作是由库函数scanf完成的,输岀操作是由 库函数printf完成的。 10>设x=3,y二x++;那么y的值为—3,表达式执行后,变量x的值为 _4o 11、已知字符a的ACSII码值为97,以下语句的输出结果是99。 charch=V;printf("%c,%d\n",ch,ch); 12、定义整型变量a,字符型变量b,应该使用的正确语句为_inta;charb13•若有定义: charch; (1)使指针P指向变量ch的定义语句是o (2)在 (1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是 scanf(“%c”,*p)o (3)在 (1)的基础上,通过指针p用格式输出函数输出ch屮字符的语句是 printf("%c”,*p)o 14.从键盘任意输入一个年号,判断它是否是闰年。 若是闰年,输出“Yes”,否则输出“No”。 已知符合下列条件之一者是闰年: 能被4整除,但不能被100整除。 能被400整除。 ★include main() { intyear,flag;printf(/zEntcryear: ;scanf("%cT,&year); if ((year%4二二O&&year%100! 二0)||(year%400二二0)) {flag二1;} else {flag=0;} if() {printf(,zYes! \n,z);} else {printf(z,No! \n,z);} } 15.下面函数Fa订用于计算不及格成绩的学生人数,个学生成绩由高到低排序。 ttinclude"stdio.h” intFail(floatscore[],intn) { inti,j,sum=; for(i=0;i {if(score[i]<60)sum; rcturnsum; } voidSort(floatscore[],intn) { inti,j,k; floattempi; for(i=0;i { k二i; for(j=;j { if(score[j]>score[k])k=_ }—if() {tempi二score[k];score[k]二tempi;} } } 函数Sort采用选择法对n score[i];score[i]二 intmain() inti; floatscore[30]; for(i=0;i<30;i++) scanf("%d”,&score[i]); printf(“不及格学生人数为%d\n”Fail(score,30)); Sort(score,30); for(i=0;i<30;i++) printf("%4d”,score[i]); return0; } 16.下而这个程序的功能是对含冇n个元素(最多10个)的一维数组按升序进行排序。 #inelude ^defineARRAY_STZE10 voidSort(inta[],intn); voidInputArray(inta[],intn); voidPrintArray(inta[],intn); main() { inta[ARRAY_SIZE],n; printf(,zlnputarraylenthn<=10: “); scanf(〃%d〃,&n); printf(,z输入数组a: \iT); TnputArray(a,n); Sort(a,n); printf(,z打印排序后的数组a: \rT); PrintArray(a,n); } voidSort(inta[],intn) { inti,j,p,temp; for(i=0;i<;i++) { P二i; for(j=;j {if()P=J; } if() {temp=a[p];a[p]=a[i];a[i]=temp;} voidInputArray(inta[],intn) inti; for(i二0;i〈n;i++)voidPrintArray(inta[],intn){ inti; for(i=0;i printf(〃\n〃); } 17•输入一行字符,统计莫屮的英文字符、数字字符、空格及英它字符的个数。 #include #inelude ^defineARR_STZE80 main() { charstr[ARRSIZE]; intlen,i,letter二0,digit二0,space二0,others二0; gets(str); for (i=0; ;i++) { if( ) else letter++; if( ) else digit++;if( ) space++; else others++; i j printf(z,Engli
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 文档 docx