C语言期末复习文档.doc_第1页
C语言期末复习文档.doc_第2页
C语言期末复习文档.doc_第3页
C语言期末复习文档.doc_第4页
C语言期末复习文档.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

期末考试题型:一、 选择题 30分二、 填空题或程序填空 20分三、 判断题 10分四、 分析题 20分五、 编程题 2030分程序设计基础 题型举例一、选择题1、C语言规定:在一个源程序中,main函数的位置_。A. 只能在程序头部; B. 可以在程序任何位置;C. 必须在#include和#define语句后面;D. 只能在程序最后面。2、在使用TurboC2.0环境编辑程序时,运行某程序使用的菜单项为_。A. RUN B. FILE C. EDIT D. OPTION3、下面标识符中正确的是_。 A. $a#b B. sum C. 1A23BC D. YMD 4、在C语言中(以16位PC机为例),存储一个整型、字符型、双精度实型变量所需的字节数是_。 A. 4、1、4 B. 4、1、4C. 2、1、8 D. 2、2、85、下面的变量说明中_是正确的。 A. Char:a,b,c; B. Char a,b,c;C. Char a;b;c; D. Char a,b,c6、判断char型变量ch是否为大写字母的正确表达式是_。 A. A=ch=A)&(ch=A)&(ch=Z) D. (A= ch)7、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是_。 if(xy) z=x; x=y; y=z; A. x=10, y=20, z=30 B. x=20, y=30, z=20 C. x=20, y=30, z=10 D. x=20, y=30, z=308、下列程序段运行结果是_。 int n=0; while(n+=2); printf(“%d”,n);A. 2 B. 3 C. 4 D. 死循环9、下面程序的功能是输出如右图所示形式的金字塔图案。*main()inti,j; for(i=1;i=4;i+) for(j=1;j=4-i;j+)printf(“); for(j=1; jm C. (*p).m D. stu.n16、一个C程序的执行是从_B_。Amain()函数开始,直到最后一个函数结束 Bmain()函数开始,直到main()函数结束C第一个语句开始,直到最后一个语句结束 D第一个函数开始,直到最后一个函数结束17、下面标识符中正确的是_A_。 A. number B. 123abc C. *a#b*c D. PHD18、在使用TurboC2.0环境编辑程序时,编译某程序使用的菜单项为_C_。 A. FILE B. COMPILE C. RUN D. OPTION19、在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为_C_。 A.char int long int = float = doubleB. char = int long int = float doubleC. char int long int = float double D. char = int = long int = float y) z=x; x=y; y=z; A. x=10, y=20, z=30 B. x=20, y=30, z=20C. x=20, y=30, z=10 D. x=20, y=30, z=3023、从循环体内某一层跳出,继续执行循环外的语句是:_A_。A.continue语句 B. return语句C. break语句 D. 空语句24、判断char型变量ch是否为大写字母的正确表达式是_B_。 A. A=ch=A)&(ch=A)&(ch=Z) D. (A= ch) 25、下面程序的输出结果是:_B_。 #define POWER(x) (x*x)main() int i = 2; printf(%d, POWER( i-2) ); A. -4 B. -6 C. 5 D. -926、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为_ _C_。 A、地址传递 B、由实参传给形参,再由形参传回给实参C、单向值传递 D、由用户指定传递方式27、下列数组定义方式不正确的语句是_A_。 A. int x3=12,13,14; B. char y=h,e,l,l,o;C. char x5; D. char y2=“Hi”,”Hello”;28、以下正确的函数定义形式是_A_。 A. double fun(int x, int y); B. double fun(int x; int y)C. double fun(x, y) D. double fun(int x,y)29、执行下列程序后,其结果为_D_。 inta=1,3,5,7,9,11; *p; p=a; printf(“%d,%dn”,*p,*(p+2);A. 0,9 B. 0,3 C. 1,7 D. 1,5 30char (*p)5;该语句声明p是一个 A 。A) 指向含有5个元素的一维字符型数组的指针变量pB) 指向长度不超过5的字符串的指针变量pC) 有5个元素的指针数组p,每个元素可以指向一个字符串D) 有5个元素的指针数组p,每个元素存放一个字符串31C语言源程序的某文件中定义的全局变量的作用域为:_C_。 A) 本文件的全部范围 B) 本函数的全部范围C) 从定义该变量的位置开始到本文件结束 D) 本程序的所有文件的范围32已知学生记录描述为:struct student int no;char name20;char sex;struct int year;char month20;int day; birth;struct student s;设变量s中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是_C_ 。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; s.birth.month = 11; s.birth.day = 11;33若有二维数组定义语句:int a34; 则下面能正确引用元素aij的为: C 。A) *(a+j*4+i) B) *(a+i*4+j) C) *(ai+j)=*(*(a+i)+j) D) *(*a+i)+j)34在下面的语句中:只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是 D 。A)if (a) s1; else s2; B)if (!a) s2; else s1;C)if (a!=0) s1; else s2; D)if (a=0) s1; else s2; 35以下正确的描述是 A 。A) 对共用体初始化时,只能对第一个成员进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员B) 结构体可以比较,但不能将结构体类型作为函数返回值类型C) 函数定义可以嵌套D) 关键字typedef用于定义一种新的数据类型36下列的定义中,正确使用字符串初始化的是 C 。A)char str7 = FORTRAN;B)char str = F,O,R,T,R,A,N,0;C)char *str = FORTRAN;D)char str = F,O,R,T,R,A,N;37判断字符串s1与字符串s2相等,应当使用: D 。A) if (s1 = s2) B) if (strcmp(s1, s2)C) if (!strcmp(s1, s2) D) if (strcmp(s1, s2) = 0)38二维数组a有m行n列,则在aij之前的元素个数为 B 。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+143.以下不能正确定义二维数组的选项是 D 。A)int a22=1,2; B)int a2=1,2,3,4;C)int a22=1,2,3; D)int a2=1,2,3,4;39若有二维数组定义语句:int a34; 则下面对元素aij不正确的引用方式是: B 。A) *(&aij) B) *(a+4*i+j) C) *(ai+j) D) *(*(a+i)+j) 40如果int i = 3, 则printf(%d, -i+ )的输出结果是 ,i的值是 A 。A) -3 4 B) -4 4C) -4 3 D) -3 341判断字符串s1与字符串s2相等,应当使用: D 。A) if (s1 = s2) B) if (strcmp(s1, s2)C) if (!strcmp(s1, s2) D) if (strcmp(s1, s2) = 0)42二维数组a有m行n列,则在aij之前的元素个数为 B 。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+143.以下选项中可作为C语言合法整数的是 C A)10110B B)0386 C)0Xffa D)x2a244.以下不能定义为用户标识符的是 D A)scanf B)Void C)_3com_ D)int45.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 D A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参(X)46.已定义c为字符型变量,则下列语句中正确的是 C A)c=97; B)c=97; C)c=97; D)c=a;47.以下能正确定义一维数组的选项是 B A)int num; B) #define N 100 int numN;C)int num0.100; D) int N=100; int numN;48.下列选项中正确的语句组是 D A)char s8; s=Beijing; B)char *s; s=Beijing;C)char s8; s=Beijing; D)char *s; s=Beijing;49.已定义以下函数fun(char *p2, char *p1) while(*p2=*p1)!=0) p1+;p2+; 函数的功能是 A A)将p1所指字符串复制到p2所指内存空间B)将p1所指字符串的地址赋给指针p2C)对p1和p2两个指针所指字符串进行比较D)检查p1和p2两个指针所指字符串中是否有050.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A .A)0 B)1 C)-1 D)一个非0值51.下列关于C语言数据文件的叙述中正确的是 D .A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件52C语言源程序的某文件中定义的全局变量的作用域为:_C_。 A) 本文件的全部范围B) 本函数的全部范围C) 从定义该变量的位置开始到本文件结束D) 本程序的所有文件的范围53C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是: A A)单向值传递 B) 地址传递 C) 相互传递 D) 由用户指定方式54以下语句或语句组中,能正确进行字符串赋值的是 D A)char *sp;*sp=right!; B)char s10;s=right!;C)char s10;*s=right!; D)char *sp=right!;55for(i=0;i10;i+)if(i=5) break;则循环结束后i的值为 A A)0 B)1 C)5 D)1056C语言中,最基本的数据类型包括: C A)整型、实型、逻辑型 B)整型、字符型、数组C)整型、实型、字符型 D)整型、实型、结构体57以下说法正确的是 C A) C程序总是从第一个定义的函数开始执行 B) 在C程序中,要调用的函数必须在main()函数中定义 C) C程序总是从main()函数开始执行 D) C程序的main()函数必须放在程序的开始部分58假定int类型变量占用两个字节,有定义:int x10=0,2,4;,则数组x在内存中所占字节数是 B A) 3 B) 6 C) 10 D) 2059.若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A .A)0 B)1 C)-1 D)一个非0值60.下列关于C语言数据文件的叙述中正确的是 D .A)文件由ASCII码字符序列组成,C语言只能读写文本文件B)文件由二进制数据序列组成,C语言只能读写二进制文件C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二、填空题1、C源程序的基本单位是_函数_。2、在C语言程序设计中,正确的标识符由_下划线_、_数字_和_字母_组成。 3、设整型变量n的值为2,执行语句“n+=n- =n*n ;”后,n的值是_-4_。4、为表示关系xyx)&(zy)_。5、已知字符A的ACSII码值为65,以下语句的输出结果是_66_。 char ch=B; printf(“%c,%dn”,ch,ch);6、在定义int a342; 后,第5个元素是_a020_,最后一个元素的首地址为_a230_。7、下面程序段的运行结果是_efgh_。 char str=abcdefgh,*p=str; printf(%s,p+4);8、一个C源程序至少应该包含一个_main_函数。9、在C语言中,输入操作是由库函数_scanf_完成的,输出操作是由库函数_printf_完成的。10、设x=3,y=x+;那么y的值为_3_,表达式执行后,变量x的值为_4_。11、已知字符a的ACSII码值为97,以下语句的输出结果是_99_。 char ch=c; printf(“%c,%dn”,ch,ch);12、定义整型变量a, 字符型变量b,应该使用的正确语句为_int a;char b_。13.若有定义:char ch;(1)使指针p指向变量ch的定义语句是 char *p;p=&ch 。(2)在(1)的基础上,通过指针p给变量ch读入字符的scanf调用语句是 scanf(“%c”,*p) 。(3)在(1)的基础上,通过指针p用格式输出函数输出ch中字符的语句是 printf(“%c”,*p) 。14 从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes”,否则输出“No”。已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。能被400整除。#include main() int year, flag;printf(Enter year:);scanf(%d,&year );if (year%4=0&year%100!=0)|(year%400=0) ) flag = 1; else flag = 0; if ( flag=1 ) printf(Yes!n); else printf(No!n); 15.下面函数Fail用于计算不及格成绩的学生人数,函数Sort采用选择法对n个学生成绩由高到低排序。#include “stdio.h”int Fail(float score, int n) int i, j, sum = ; for (i=0; in; i+) if (scorei 60) sum ; return sum; void Sort(float score, int n) int i, j, k; float temp1; for (i=0; in-1; i+) k = i; for (j= ; j scorek) k = ; if ( ) temp1 = scorek; scorek = scorei; scorei = temp1; int main() int i; float score30; for(i=0;i30;i+) scanf(“%d”,&scorei); printf(“不及格学生人数为%dn”Fail(score,30); Sort(score,30); for(i=0;i30;i+) printf(“%4d”,scorei); return 0; 16.下面这个程序的功能是对含有n个元素(最多10个)的一维数组按升序进行排序。#include #define ARRAY_SIZE 10void Sort(int a, int n);void InputArray(int a,int n);void PrintArray(int a,int n);main()int aARRAY_SIZE, n;printf(Input array lenth n=10: );scanf(%d, &n);printf(输入数组 a:n);InputArray(a, n);Sort(a, n);printf(打印排序后的数组 a:n);PrintArray(a, n);void Sort(int a, int n) int i, j, p, temp;for(i = 0; i ; i+)p = i;for(j = ; j n; j+)if( ) p = j;if( ) temp = ap;ap = ai;ai = temp; void InputArray(int a, int n)int i;for (i = 0; i n; i+) ; void PrintArray(int a, int n)int i;for (i = 0; i n; i+) ;printf(n);17. 输入一行字符,统计其中的英文字符、数字字符、空格及其它字符的个数。#include #include #define ARR_SIZE 80main()char strARR_SIZE;int len, i, letter=0, digit=0, space=0, others=0; gets(str); for (i=0; ; i+) if ( ) letter +; else if ( ) digit +; else if ( ) space +; else others +; printf(English character: %dn, letter); printf(digit character: %dn, digit); printf(space: %dn, space); printf(other character: %dn, others);18. C语言提供的三种逻辑运算符是 、 和 。19已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33,则输出结果是 。#include main()char a,b; a=getchar();scanf(%d,&b); a=a-A+0;b=b*2; printf(%c %cn,a,b);20. 以下程序运行后的输出结果是 。#define S(x) 4*(x)*(x)+1main()int i=2,j=3;printf(%dn,S(i+j);21.a在内存中占 1 个字节,”a”在内存中占 2 个字节。22若有int a32 = 1,3,2,4,5;,则a11的值是2 。23.在循环语句中,break语句的作用是 跳出所在循环结构,转向执行该循环结构后面的语句 ,continue语句的作用是 使本次循环提前结束,跳过循环体continue语句后面尚未执行的循环体语句继续进行下一次循环的条件判断 。三、分析题1、源程序如下,运行时假定键盘输入数据为:1 2 3 4 5 6 7 8 9 10void main( ) int i,a10;int *p=a;for ( i=0;i10;i+)scanf( “%d“,p+);for(p=a;p (a+10);p+)if (*p%2) printf( “%3d”,*p);请回答:上述程序的运行结果为:_。2、下面程序判断用户输入的数据是否为素数。 #include void main() int a,i,flag=0; scanf(%d, _ ); for(i=2; ia; i+) if ( ) flag=1;break; if ( _ _ ) printf(“%d 不是素数。”, a);else printf(“%d是素数。”, a); 请回答:(1) 处应为_(2) 处应为_ (3) 处应为_ 3、下面程序求矩阵a的转置矩阵,请完善该程序。a=1 2 34 5 6b=1 42 53 6如右图,矩阵a的转置矩阵为b。void main( ) int a32=2,4,6,8,10,12,b23; int sum=0,i,j;for( i=0; i3; )for( j=0; ; j+) ;printf(sum=%dn,sum);请回答:(1) 处应为_(2) 处应为_(3) 处应为_ 4#include main() int v1 = 10 ; float v2 = 2.5 ; float v3 ; int v4 ; float v5 ; v3 = v1 / v2 ; v4 = v1 / v2 ; v5 = v1 / 4 ; printf(v3=%ftv4=%dtv5=%fn,v3,v4,v5) ;程序运行结果是:5#includestruct date int year; int month; int day;void func(struct date p) p.year = 2000; p.month = 5; p.day = 22;main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(“%d,%d,%dn”, d.year, d.month, d.day); func(d); printf(“%d,%d,%dn”, d.year, d.month, d.day);程序运行结果是:6#include main()int i = 0;while(i 10)if(i+ 1)continue;if(i = 5)break;i+;printf(i = %d, i);程序运行结果是:7main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2)continue; x+; x+; printf(x=%dn,x); 运行结果是:8#includestruct date int year; int month; int day;void func(struct date p) p.year = 2000; p.month = 5; p.day = 22;main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(“%d,%d,%dn”, d.year, d.month, d.day); func(d); printf(“%d,%d,%dn”, d.year, d.month, d.day);程序运行结果是:9main() int a=2,b=7,c=5; switch(a0)case 1:switch (b0) case 1:printf();break; case 2: switch (c=5) case 0:printf(*);break; case 1:printf(#

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论