武汉大学C语言期末复习-试题
VC期末考试题及标准答案

武汉大学2021—2021学年上学期面向对象程序设计试卷〔B〕学号:姓名:院系:专业:得分:一、名词解释〔每题5分,共计25分〕〔1〕构造函数:是一种特殊成员函数,它提供了对成员变量进展初始化方法,使得在声明对象时能自动初始化对象〔+2〕;构造函数名称与类名一样〔+1〕;构造函数不能指定任何返回值类型〔+1〕;构造函数可以重载〔+1〕。
〔2〕多态:多态性是面向对象编程一个重要特征〔+1〕,主要表现在函数调用时实现“一种接口,多种方法〞〔+2〕。
多态又分为编译时多态和运行时多态两种〔+2〕。
〔3〕抽象类:抽象类是指这样类,它一些行为〔成员函数〕不给出具体定义〔+2〕,抽象类至少带有一个纯虚函数〔+1〕,抽象类不能用来申明对象,只能作为基类使用,因此它又称为抽象基类〔+2〕。
〔4〕文档模板:在文档/视图构造应用程序中,数据以文档类对象形式存在〔+1〕。
文档对象通过视图对象显示出来,而视图大对象又是框架窗口一个子窗口,并且涉及文档操作菜单和工具栏等资源也是建立在框架窗口上〔+2〕。
这样文档、视图、框架和所涉及资源形成了一种固定关系,这种固定关系就成为文档模板〔+1〕。
也就是说,文档模板描述了对应于每一种类型文档视图和窗口类型〔+1〕。
〔5〕序列化:对象保存和恢复过程称为序列化〔+2〕。
即对象具有保存和加载其状态能力〔+1〕,对象能够在程序运行完毕前将对象当前状态写入永久存储体中,以后在程序运行时通过数据读取而恢复对象状态〔+2〕。
二、简答题〔每题10分,共计40分〕1.简述文档、视图和应用程序框架之间如何相互作用?答:文档、视图和应用程序包含了一系列复杂相互作用过程〔+1〕,稳当和视图交互式通过类共有数据成员和成员函数实现〔+1〕。
一个视图对象只与一个文档对象关联,一个文档可以与多个视图关联,但一个文档对象只反映当前视图变化〔+2〕。
视图中用GetDocument()获取文档对象进展操作〔+1〕;在文档中利用Invalidate(), UpdateAllViews()或SendMessage(WM_PAINT,a,b)调用视图中OnDraw()对文档数据进展绘图〔+3〕;在程序任何地方可以调用AfxGetApp()得到程序框架对象指针,利用框架对象指针可进一步利用GetActiveView()获取程序视图对象,并对其进展操作〔+2〕。
大学C语言期末考试练习题(带详解答案)

一、单项选择题1.( A)是构成C语言程序的基本单位。
A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。
A) 程序中第一条可执行语句B)程序中第一个函数C)程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。
A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4。
下列关于C语言的说法错误的是(B)。
A)C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写.C)C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5。
下列正确的标识符是(C).A.-a1 B。
a[i] C。
a2_i D。
int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“—" ,选项B中“[”与“]"不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。
A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。
A)%x B)a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。
A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line#His。
大学生期末c语言试题及答案

大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的变量名?A. 2variableB. _variableC. variable2D. variable-2答案:C2. 下列哪个选项是C语言中的关键字?A. defineB. typedefC. includeD. using答案:B3. 在C语言中,以下哪个选项表示的是逻辑与运算?A. &&B. ||C. !D. =答案:A4. C语言中,以下哪个选项是正确的注释方式?A. /* 这是注释 */B. // 这是注释C. /* 这是注释 */D. # 这是注释答案:A5. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B6. C语言中,以下哪个选项是正确的数组初始化方式?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:A7. 在C语言中,以下哪个选项是正确的函数声明?A. int func(int a, int b);B. int func(int a, int b) {}C. int func(int, int);D. int func(int a, int b) = 0;答案:A8. 以下哪个选项是C语言中正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o'};C. char str[] = "Hello";D. char str[] = {'H', 'e', 'l', 'l', 'o'};答案:A10. C语言中,以下哪个选项是正确的结构体定义方式?A. struct Student {int id;char name[50];};B. struct Student {int id;char name[];};C. struct Student {int id;char name[50];} student;D. struct Student {int id;char name[];} student;答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用______运算符可以取变量的地址。
武汉大学计算机学院C语言历年试题

武汉大学计算机学院2001-2002学年度第一学期2001级《高级语言程序设计》期末考试试卷姓名:学号:专业:未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。
一.选择最合适的答案填空(每题1分,共10分)( )1.______ 不是C语言的基本控制结构。
A.转移B.循环C.顺序D.选择( )2.表达式65|9和65&9的值为______ 。
A.74和74B.73和1C.74和405D.73和9( )3.设变量int m,n,a,b的值均为1,则执行表达式(m=a>b) &&(n=a>b)后,m,n的值为______ 。
A.1和1B.0和1C.1和0D.0和0( )4.表达式35<<3的值为______ 。
A.4B.38C.105D.280( )5.设有如下宏定义#define WIDTH 80#define LENGTH WIDTH+1则执行赋值语句v=LENGTH*20;/*v为int型变量*/后,v的值为______ 。
A.1620B.1601C.100D.1600( )6.假如指针p已经指向某个整型变量,语句____ 使指针q与p指向同一变量。
A.q=**pB.q=*&pC.q=&&pD.q=*p( )7.设long a[50],*p;执行p=a; p+=4;后*(p+4)等价于____ 。
A.a[8]B.a[4]C.a[2]D.无法确定( )8.执行fp=fopen(”A:Exam1_8.txt”,”wb”);后fp为null,最可能的原因是____ 。
A.按二进制方式打开文本文件B.文件A:Exam1_8.txt不存在C.文件写保护D.文件A:Exam1_8.txt大小写不一致( )9.______ 不是对象的基本特性。
A.封装B.多态(重载)C.非结构D.继承( )10.结构化程序设计追求的首要目标是程序的______ 。
c语言期末考试考试题及答案

c语言期末考试考试题及答案C语言期末考试考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. IntegerB. intC. StringD. float答案:B2. C语言中,哪个运算符用于计算两个整数的乘积?A. *B. /C. %D. +答案:A3. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. variable int;C. var int;D. int = var;答案:A4. 下列哪个选项是正确的C语言数组声明?A. int array[10];B. int [10] array;C. array[10] int;D. int array = 10;答案:A5. C语言中,哪个函数用于计算两个数的最大值?A. max(int a, int b)B. max(double a, double b)C. maximum(int a, int b)D. max_value(int a, int b)答案:A二、填空题(每空2分,共20分)1. C语言中,一个完整的程序由_________和_________两部分组成。
答案:预处理指令;函数2. 在C语言中,用_________关键字定义一个函数。
答案:void 或 int 或其他数据类型(根据函数返回类型而定)3. C语言中,用于输入输出的库函数是_________和_________。
答案:printf;scanf4. 一个C语言程序的执行从_________函数开始。
答案:main5. C语言中,定义一个字符常量使用的是_________括号。
答案:单引号三、简答题(每题10分,共20分)1. 简述C语言中变量的作用域和生命周期。
答案:变量的作用域指的是变量可以被访问的代码区域。
局部变量的作用域仅限于定义它的块内,而全局变量可以在整个程序中访问。
变量的生命周期指的是变量存在的时间,局部变量的生命周期从定义开始到所在代码块结束,全局变量的生命周期则从程序开始到结束。
大学生期末c语言试题及答案

大学生期末c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的元素类型必须一致C. 数组的下标可以是实数D. 数组的下标可以是负数答案:B3. C语言中,用于文件操作的库函数位于哪个头文件中?A. stdio.hB. math.hC. string.hD. stdlib.h答案:A4. 下列哪个运算符不能用于赋值?A. =B. +=C. *=D. %答案:D5. C语言中,用于定义一个函数的关键字是:A. functionB. defineC. defD. void答案:B6. 下列关于指针的描述中,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. C语言中,用于定义一个宏的预处理指令是:A. #defineB. #includeC. #pragmaD. #if答案:A8. 下列关于循环的描述中,正确的是:A. for循环可以没有初始化表达式B. while循环可以嵌套C. do-while循环至少执行一次D. 所有循环都可以使用break语句退出答案:C9. C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A10. 下列关于函数的描述中,错误的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以递归调用D. 函数可以嵌套定义答案:D二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是______。
答案:652. 若int a = 10; int b = 20; 则表达式a++ + b的结果是______。
C期末考试复习题(答案)

C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
大学c语言期末考试题库试题及答案

大学c语言期末考试题库试题及答案在即将到来的大学C语言期末考试中,同学们可能会遇到各种类型的题目。
以下是一些典型的试题及其答案,供同学们复习参考。
1. 以下哪个选项是C语言中的关键字?A. intB. IntegerC. INTD. integer答案:A. int2. 若有定义:int a = 10; 则表达式 a++ 的值是多少?A. 9B. 10C. 11D. 无法确定答案:B. 103. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. length()C. str_length()D. string_length()答案:A. strlen()4. 若有以下代码片段:```cint x = 5;printf("%d", x++);```执行后输出的结果是?A. 4B. 5C. 6D. 无法确定答案:B. 55. 在C语言中,以下哪个选项表示“逻辑与”操作?A. &&B. ||C. !D. &答案:A. &&6. 若有以下代码:```cint a = 3, b = 4, c;c = a + b;```则变量 c 的值是多少?A. 7B. 3C. 4D. 无法确定答案:A. 77. 在C语言中,以下哪个选项是正确的二维数组声明?A. int array[2,3];B. int array[2][3];C. int array[2][3][4];D. int array[][];答案:B. int array[2][3];8. 若有以下函数定义:```cint add(int x, int y) {return x + y;}```则调用 add(5, 3) 时,返回的值是多少?A. 2B. 5C. 8D. 无法确定答案:C. 89. 在C语言中,以下哪个选项表示“不等于”的比较运算符?A. ==B. !=C. =D. <=答案:B. !=10. 若有以下代码:```cchar str[] = "Hello";str[0] = 'h';```执行后,str 数组的内容是什么?A. "hello"B. "Hello"C. "helloworld"D. "hEllo"答案:A. "hello"这些题目覆盖了C语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C) a=7+b,b++,a+7
D) a=7+b,c=a+7; √
2、在C语言中,要求运算数必须是整型的运算符是
A) % √
B) /
C) <
D) !
3、已知字母A的ASCⅡ码为十进制的65,下面程序的输出是
main()
{ char ch1,ch2;
ch1='A'+'5'-'3'; ch2='A'+'6'-'3';
A)EOF
B)-1
C)非零值 √
11. 根据下面的定义,能印出字母M的语句是
D)NULL
struct person{ char name[9]; int age; };
struct person class[10]={“john”,17,“paul”,19,“mary”,18,“adam”,16};
printf("%d,%c\n",ch1,ch2);
}
A) 67,D √
B) B,C
C) C,D
D) 不确定的值
2021/3/11
2
4、下面程序的输出是
main()
{ int x=10,y=3;
printf("%d\n",y=x/y);
}
A) 0
B) 1
C) 3 √
D) 不确定的值
5、 若执行下面的程序时从键盘上输入13和14,则输出是
printf(}
A) 3√
B) 4
C) 1
D) 2
2021/3/11
3
7、下面程序的输出是
main()
{ enum team { my,your=4,his,her=his+10};
printf("%d%d%d%d\n",my,your,his,her);
} A) 0 1 2 3
A)printf(“%c\n”,class[3].name); B)printf(“%c\n”,class[3].name[1]);
C)printf(“%c\n”,class[2].name[1]); D)printf(“%c\n”,clsaa[2].name[0]); √
12. 下面程序的输出是
main()
main()
{ int a,b;
scanf(“%d%d”,&a,&b);
if(a<b) printf(“%d\n”, a++);
else printf("%d\n, b--);
} A) 12
B) 13√
C) 14
D) 15
6、下面程序的输出是
main()
{ int a[10]={ 1,2,3,4,5,6,7,8,9,10},*p=a;
}
A)100
B)160
C)120
D)64√
14. 下面程序的输出是
main()
{ struct cmplx {int x; inf y;}cnum[2]={1,3,2,7};
printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
}
A)0
B)1
C)3
D)6 √
15. 下面程序的输出是
B)204
C)1a4
D)1a6 √ 7
18. 以下说法中正确的是 A)C语言程序总是从第一个的函数开始执行 B)在C语言程序中,要调用的函数必须在main()函数中定义 C)C语言程序总是从main()函数开始执行 √ D)C语言程序中的main()函数必须放在程序的开始部分
19.执行下面的程序后, a的值为 main() { int a,b; for (a=1,b=1;a<=100;a++) { if(b>=20) break;
试卷共5个大题
•单项选择题题(每题1分,共20分) • 填空题(20分,每题2分) • 阅读程序(20分,每题4分) • 完成程序题(20分,每空2分) • 程序编制题:(20分,每题10分)
2021/3/11
1
练习
1、下列语句中符合C语言语法的赋值语句是
A) a=7+b+c=a+7;
B) a=7+b++=a+7;
{ int y=9;
for(;y>0;y--)
{ if(y%3==0)
{ printf("%d",--y);
continue;
}
}
}
2021/3/11
A)741
B)852 √
C)963
5
D)875421
13. 下面程序的输出是 main() { char x=040; printf("%d\n",x=x<<1):
fun3(int x)
{ static int a=3;
a+=x;
return(a); } main() { int k=2,m=1,n;
n=fun3(k); n=fun3(m); printf("%d\n",n);
2}021/3/11
A)3
B)4
C)6 √
6
D)9
16. 下面程序的输出是
main()
if(b%3==1) { b+=3;
continue; }
b-=5;
}
}
A)7
B)8 √
C)9
2021/3/11
D)10
9、下列函数的功能是
int fun1(char *x)
{ char *y=x;
while(*y++);
return(y-x-1);
} A)求字符串的长度 √
B)比较两个字符串的大小
C)将202字1/3/符11 串X复制到字符串Y
D)将字符串X连接到字符串Y后面4
10. 若fp是指向某文件的指针,且已读到该文件的末尾,则feof( fp)的返回是
17.该程序有两个printf 语句, 如果第一个printf 语句输出的是194, 则第二
个printf语句的输出结果是:
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,0},*p;
p=a;
printf("%x\n",p);
printf("%x\n",p+9);
} A2)02201/33/11
B) 0 4 0 10
C) 0 4 5 15√
D) 1 4 5 15
8、下面程序的输出是
main()
{ int a=-1,b=4,k;
k=(a++<=0)&&(!(b--<=0));
printf("%d%d%d%\n",k,a,b);
} A) 0 0 3
B) 0 1 2
C) 1 0 3 √
D) 1 1 2
{ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*P)[4]=a,i,j,k=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
k=k+*(*(p+i)+j);
printf("%d\n",k);
} A)60 √
B)68
C)99
D)108