武汉大学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语言的基础知识点,包括关键字、变量、函数、数组以及基本的控制结构。
c语言期末复习试题(附答案)
试卷编号:11201所属语言:C语言试卷方案:C语言期末考试试卷总分:100分共有题型:4种一、单项选择共30题(共计60分)第1题(2.0分)设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A). A:k++B:k+=1C:++kD:k+1第2题(2.0分)已知inti=5,执行语句i+=++i后,i的值是(C).A:10B:11C:12D:A、B、C都不对第3题(2.0分)以下程序的功能是:给r输入数据后,计算半径为r的圆面积s.程序在编译时出错. #include<stdio.h>voidmain()/*Beginning*/{intr;floats;scanf("%d",&r);s=p*r*r;printf("s=%f\n",s);出错的原因是(D).A:注释语句书写位置错误B:存放圆半径的变量r不应该定义为整型C:输出语句中格式描述符非法D:计算圆面积的赋值语句中使用了非法变量第4题(2.0分)"\\\″ABC\″\\″的长度是(B).A:11B:7C:5D:3第5题(2.0分)已知intj,i=1;,执行语句j=–i++;后,j的值是(C).A:1B:2C:-1D:-2第6题(2.0分)有以下程序:#include<stdio.h>voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s+=1;a=a–2;}while(a!=n);printf("%d\n",s);}若要使程序的输出值为2,则应该从键盘输入给n的值是(B). A:-1B:-3C:-5D:0第7题(2.0分)执行以下程序后,输出的结果是(D).#include<stdio.h>voidmain(){inty=10;do{y––;}while(––y);printf("%d\n",y––);}A:-1B:1C:8D:0第8题(2.0分)以下循环体的执行次数是(C).#include<stdio.h>voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j––)printf("%d\n",i);}A:3B:2C:1D:0第9题(2.0分)有以下程序段:intk=0;while(k=1)k++;while循环执行的次数是(A).A:无限次B:有语法错误,不能执行C:1次也不执行D:执行1次第10题(2.0分)有以下程序#include<stdio.h>voidmain(){intm,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p);}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A). A:m=123n=456p=789B:m=123n=456p=789C:m=123,n=456,p=789D:123456789第11题(2.0分)设变量已正确定义,以下能正确计算f=n!的程序段是(D)A:f=0;for(i=1;i<=n;i++)f*=i;B:f=1;for(i=1;i<n;i++)f*=i;C:f=1;for(i=n;i>1;i++)f*=i;D:f=1;for(i=n;i>=2;i––)f*=i;第12题(2.0分)在下列程序中,没有构成死循环的程序段是(B).A:inti=100;while(1){i=i%100+1;if(i>100)break;}B:intk=1000;do{++k;}while(k>=10000);C:for(;;);D:ints=36;while(s);--s;第13题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是(B).A:987B:876C:8765D:9876第14题(2.0分)以下程序的输出结果是(D).#include<stdio.h>voidmain(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x––,y);}A:10192B:9876C:10990D:101091第15题(2.0分)有如下程序:#include<stdio.h>voidmain(){intn[5]={0,0,0},i,k=2;for(i=0;i<k;i++){printf("%d\n",n[k]);}}该程序的输出结果是(D).A:不确定的值B:2C:1D:0第16题(2.0分)下列程序执行后的输出结果是(A).#include<stdio.h>voidmain(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me"); arr[0][3]='&';printf("%s\n",arr);}A:you&meB:youC:meD:err第17题(2.0分)以下程序的输出结果是(C).#include<stdio.h>voidmain(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d,",x[i][2–i]); }A:1,5,9,B:1,4,7,C:3,5,7,D:3,6,9,第18题(2.0分)以下数组定义中不正确的是(D).A:inta[2][3];B:intb[][3]={0,1,2,3};C:intc[100][100]={0};D:intd[3][]={{1,2},{1,2,3},{1,2,3,4}};第19题(2.0分)以下能正确定义数组并正确赋初值的语句是(D). A:intN=5,b[N][N];B:inta[1][2]={{1},{3}};C:intc[2][]={{1,2},{3,4}};D:intd[3][2]={{1,2},{3,4}};第20题(2.0分)有以下程序:inta=4;intf(intn){intt=0;staticinta=5;if(n%2){inta=6;t+=a++;}else{inta=7;t+=a++;}returnt+a++;}main(){ints=a,i=0;for(;i<2;i++)s+=f(i);printf("d\n",s);}程序运行后的输出结果是(B)A:24B:28C:32D:36第21题(2.0分)以下正确的函数定义形式为(A)A:doublefun(intx,inty)B:doublefun(intx;y)C:doublefun(intx;inty)D:doublefun(intx,y)第22题(2.0分)C语言规定,函数返回值的类型是由(D)A:return语句中的表达式类型所决定的B:调用该函数时的主调函数类型所决定的C:调用该函数时系统临时决定的D:在定义该函数时所指定的函数类型所决定的第23题(2.0分)有以下程序:输出结果是()(注:5353)voidswap1(intc0[],intc1[]){intt;t=c0[0];c0[0]=c1[0];c1[0]=t;}voidswap2(int*c0,int*c1){intt;t=*c0;*c0=*c1;*c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a,a+1);swap2(&b[0],&b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]); }A:3553B:5335C:3535D:5353第24题(2.0分)以下程序的输出结果是(A).amovep(int*p,int(*a)[3],intn){inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){*p=a[i][j];p++;}}main(){int*p,a[3][3]={{1,3,5},{2,4,6}};p=(int*)malloc(100);amovep(p,a,3);printf("%d%d\n",p[2],p[5]);free(p);}A)56B)25C)34D)程序错误第25题(2.0分)有以下函数:fun(char*a,char*b){while((*a!='\0')&&(*b!='\0')&&(*a==*b)){a++;b++;}return(*a–*b);}该函数的功能是(D).A:计算a和b所指字符串的长度之差B:将b所指字符串复制到a所指字符串中C:将b所指字符串连接到a所指字符串后面D:比较a和b所指字符串的大小第26题(2.0分)有以下程序:fun(charp[][10]){intn=0,i;for(i=0;i<7;i++)if(p[i][0]=='T')n++;returnn;}main(){charstr[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"}; printf("%d\n",fun(str));}程序执行后的输出结果是(B).A:1B:2C:3D:0第27题(2.0分)有以下程序:main(){charstr[][10]={"China","Beijing"},*p=str;printf("%s\n",p+10);}程序运行后的输出结果是(B).A:ChinaB:BeijingC:ngD:ing第28题(2.0分)有以下程序:#definef(x)(x*x)main(){inti1,i2;i1=f(8)/f(4)i2=f(4+4)/f(2+2)printf("%d,%d\n",i1,i2);}程序运行后的输出结果是(C).A:64,28B:4,4C:4,3D:64,64第29题(2.0分)有以下程序:结果是(A)voidchange(intk[]){k[0]=k[5];}main(){intx[10]={1,2,3,4,5,6,7,8,9,10},n=0;while(n<=4){change(&x[n]);n++;}for(n=0;n<5;n++)printf("%d",x[n]);printf("\n");}A)678910B)13579C)12345D)62345A:678910B:13579C:12345D:62345第30题(2.0分)在以下程序中,能够通过调用函数fun(),使main()函数中的指针变量p指向一个合法的整型单元的是(C). A:main()int*p;fun(p);…}intfun(int*p){ints;p=&s;}B:main(){int*p;fun(&p);…}intfun(int**p){ints;*p=&s;}C:#include<stdlib.h>main(){int*p;fun(&p);…}intfun(int**p){*p=(int*)malloc(2);}…D:#include<stdlib.h>main(){int*p;fun(p);…}intfun(int*p){p=(int*)malloc(sizeof(int));}二、程序填空共1题(共计10分)第1题(10.0分)/*------------------------------------------------------- 【程序填空】--------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。
大学c语言期末考试题及答案
大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。
答案:int2. 在C语言中,表示逻辑与运算的运算符是____。
答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。
武汉大学《C语言程序设计》2016-2017学年第一学期期末试卷A卷
武汉大学计算机学院2016-2017学年度第1学期《C语言程序设计》期末考试试卷A卷一.单项选择题:(选择最合适的答案填空,每小题2分,共20分)( )1.不正确的常量是____B__ 。
A.‘\t’B.084C. 1.2e4D.0x8fL( )2.表达式-8%3+13/2的结果为______D 。
A. 4.5B.8C.8.5D.4( )3.设变量 int a=1,b=2; 则执行表达式a+=3,b-2,++b,a*=b后变量a 和b 的值为______C 。
A.2和2B.3和3C.12和3D.12和2( )4.表达式0xad86|0xff的值为____A__ 。
A.0xadffB.0x86C.0xad86D.0xff( )5.设有如下宏定义#define price(x) 5+x则执行赋值语句 v=price(4)*price(15);/*v为int型变量*/后,v的值为 C 。
A.180B.85C.40D.60( )6.在定义指针变量时,void *类型表明指针____ A 。
A.指向对象类型未知B.不指向任何对象C.指向整型的对象D.指向char类型对象( )7.设int a[3][4],*p[3]; 则以下___C____赋值语句是正确的。
A.p=a[0];B.p[1]=a;C.p[1]=a[2];D.p=a;( )8.创建一个新的文本文件,可对该文件进行读写操作,则____A____打开方式是正确的。
A.“w+”B.“wb”C.“r+”D.“rb+”( )9.表达式4&&5结果为______B 。
A.0B.1C.4D.5( )10.正确的标识符是______A 。
A._a123B.3zC.“next”D.‘A’二.文字填空(共15分)1.一个合理的算法应该具有“有穷性”,“有穷性”指的是_____经过有限个步骤的处理以后,算法应该结束_________。
2.%作为运算符表示________取余数 ____________。
c语言期末试题
一、选择题(每小题2分,共34分)1. 以下不合法的用户标识符是______。
A、j2_KEYB、DoubleC、4dD、_8_2.以下叙述中正确的是______。
A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号“{”和“}”只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数)D、分号是C语言之间的分隔符,不是语句的一部分3.设int a=12,则执行完语句a+=a-=a*a后,a的值是______。
A、0B、264C、144D、-2644.假定x和y为double型,表达式x=2,y=x+3/2的值是______。
A、3.500000B、3C、2.000000D、3.0000005.语句:printf("%d",(a=2)&&(b=-2));的输出结果是______。
A、2B、1C、-4D、-26.若变量c为char类型,能正确判断出c为小写字母的表达式是______。
A、´a´<=c<=´z´B、(c>=´a´)||(c<=´z´)C、(´a´<=c)and(´z´>=c)D、(c>=´a´)&&(c<=´z´)7.在嵌套使用if语句时,C语言规定else总是______。
A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对8.以下循环体的执行次数是______。
main(){int i,j;for (i=0,j=1; i<=j+1;i+=2,j--)printf("%d \n",i);}A、3B、2C、1D、09.int a[2][3]={{1},{2,3}};,则a[0][1]的值是______。
c语言大学期末考试题及答案
c语言大学期末考试题及答案C语言大学期末考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义数组?A. intB. arrayC. defineD. static答案:A2. 下列哪个是C语言中的合法标识符?A. 3variableB. variable-nameC. variable#nameD. variable_name答案:D3. C语言中,哪个函数用于计算两个数的和?A. sum()B. add()C. calculate()D. None of the above答案:D4. 以下哪个语句用于定义一个空指针?A. int *ptr;B. int *ptr = 0;C. int *ptr = NULL;D. Both B and C答案:C5. 在C语言中,哪个运算符用于取地址?A. *B. &C. %D. /答案:B6. 下列哪个语句是正确的C语言循环语句?A. do-whileB. whileC. forD. All of the above答案:D7. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:D8. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. Both A and BD. None of the above答案:C9. 在C语言中,哪个函数用于输入数据?A. printf()B. scanf()C. getchar()D. puts()答案:B10. C语言中,哪个关键字用于定义一个结构体?A. structB. typeC. unionD. enum答案:A二、填空题(每空2分,共20分)1. 在C语言中,基本数据类型包括_______、_______、double和char。
答案:int, float2. 一个C语言程序的执行从_______函数开始。
大学c语言期末考试题及答案
大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. intB. floatC. doubleD. string答案:A2. C语言中,哪个函数用于将整数转换为字符串?A. itoa()B. atoi()C. printf()D. sprintf()答案:A3. 在C语言中,以下哪个是正确的字符串定义方式?A. char str[] = "Hello World";B. string str = "Hello World";C. char str = "Hello World";D. char str[12] = "Hello World";答案:A4. 下列哪个是C语言中正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0;答案:B5. C语言中,哪个运算符用于求两个数的余数?A. %B. /C. *D. -答案:A6. 下列哪个是C语言中正确的条件语句?A. if (x > y)B. if x > yC. if(x > y)D. if (x > y)答案:D7. 在C语言中,哪个函数用于计算两个数的最大值?A. max()B. max_int()C. max_value()D. None of the above答案:D8. C语言中,哪个关键字用于定义函数?A. functionB. defC. funcD. int答案:D9. 在C语言中,哪个语句用于结束程序的执行?A. break;B. exit();C. return;D. end;答案:B10. 下列哪个是C语言中正确的循环结构?A. do-whileB. forC. whileD. All of the above答案:D二、填空题(每题2分,共10分)1. C语言中,用于定义变量的关键字是________。
2022年武汉大学公共课《C语言》科目期末试卷B(有答案)
2022年武汉大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。
union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);2、结构化程序由________、________ 、________ 3种基本结构组成。
3、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
4、若x和n均是int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为_______。
5、已知字母a的ASCIl码为十进制数97,且设ch为字符型变量,则表达式ch='a'+'8'-3'的值为_______。
6、在C语言中,&运算符作为单目运算符时表示的是_______运算;作为双目运算符时表示的是_______运算。
7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。
在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。
a[0]=1;a[1]=2;swap(a,2);8、若有定义:inta[3][4]={{1,2},{0},{4,6,8,10}};,则初始化后,a[1][2]得到的初值是_______,a[2][1]得到的初值是_______。
9、设有宏定义如下:#define MIN(x,y)(x)>(y)?(x):(y)#define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。
int a=1,b=3,c=5,s1,s2;s1=MIN(a=b,b-a);s2=T(a++,a*++b,a+b+c);10、请填空:建立如图所示存储结构所需的说明语句是_______。
武汉大学《C语言程序设计》 2017-2018学年第二学期期末试卷A卷
武汉大学计算机学院2017-2018学年度第2学期《C语言程序设计》期末考试试卷A卷姓名:学号:专业:说明:开卷考试,答案请全部写在答题纸上,写在试卷上无效。
未经主考教师同意,考试试卷、答题纸、草稿纸均不得带离,否则视为违规。
题号一二三四五总分总分1629103015100一.单项选择题:(选择最合适的答案填空,每小题2分,共16分)()1、设有变量定义:int m=5,n=3;则执行表达式((m+=2)>=7)||((n-=3)<10)后,m,n的值分别为______。
A.5和0B.5和3C.7和0D.7和3()2、已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C语言语法的表达式是。
A.w+=-2B.k=(a=2,b=3,a+b)C.a+=a-=(b=4)*(a=3)D.x%(-3)()3、下面程序段的运行结果是。
#include<stdio.h>int main(){int a=11,b=10,c=0;a/=b+(b&&c);printf(“%d\n”,a);return0;}A.0B.1C.1.1D.11()4、头文件type1.h的内容如下所示:#define N5#define M1N*3程序如下:#include“type1.h”#define M2N*2int main(){int i;i=M1+M2;printf(“%d\n”,i);return0;}则上述程序编译后运行的输出结果是:A.10B.20C.25D.30()5、设有如下定义:struck sk{int a;float b;}data;int*p;若要使P指向data中的a域,正确的赋值语句是:A.p=&data.a;B.p=data.a;C.p=&a;D.*p=data.a ()6、设有如下定义int a[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是。
武汉大学《C语言程序设计》2016-2017学年第二学期期末试卷B卷
武汉大学计算机学院2016-2017学年度第2学期《C语言程序设计》期末考试试卷B卷一.单项选择题:(共10分,每个小题1分)1.以下说法错误的是。
A.三种基本结构的共同点是“单入口单出口”。
B.goto语句可以在程序中自由跳转。
C.结构化程序设计设计三种基本结构的目的是增加程序的可读性和可维护性。
D.结构化程序设计中划分模块的原则是模块“相对独立,功能单一”。
2.在C语言中,形参的缺省存储类是。
A.staticB.registerC.externD.auto3.设有如下宏定义:#define test(t) t-4%t则表达式test(2)*test(5)的值为。
A.-12B.-2C.2D.04.执行语句b=(a=2*10,a=a=4,(a=3*5,a*4),a+5); 后,a和b的值分别是。
A.24,29B.20,25C.15,25D.15,205.设有变量定义:int p=4; char k='a'; 则执行表达式((k+=2)>= 'c') ||((p*=3)<10) 后,变量k和p的值分别为______ 。
A.a和4B.a和12C.c和4D.c和126.表达式076432&~01777的结果是____________。
A.432B.0432C.76000D.0760007.执行以下程序段后,变量m的值为。
int a[8]={ 4,3,2,1 , 7,6,5,4 };int m,*p;p = &a[0];m = ( *p + 1) + ( p[ 2 ] ) * ( p[ 7 ] );A.13B.11C. 16D. 198.设有变量定义:char a[30]; long int *p = (long int *)(a+3); 则以下与表达式p+4等价的是。
A.&a[7]B. a+16C. a+19D. a+289.对于以下字符串,strlen(s)的值为:(1) char s1[]="\t\"\\\\\0abc\n";(2) char s2[]="\x69\33\n";(3) char s3[]="\t\082\n";A.4、3和1B.4、3和3C.16、3和3D.16、3和1010.表达式2.5+7%2-5/2*2的结果为______ 。
大学c语言期末考试试题及答案
大学c语言期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个是C语言的关键字?A. intB. StringC. mainD. void答案:A2. 在C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C3. 以下哪个是合法的C语言变量名?A. 2variableB. variable2C. variable-nameD. variable#name答案:B4. 在C语言中,哪个函数用于计算两个数的和?A. sum()B. add()C. plus()D. None of the above答案:D5. 下列哪个是C语言的标准输入输出库?A. <stdio.h>B. <iostream.h>C. <io.h>D. <input.h>答案:A6. 在C语言中,哪个语句用于结束程序的执行?A. break;B. continue;C. return;D. exit;答案:C7. 在C语言中,哪个关键字用于定义一个函数?A. funcB. functionC. defD. void答案:D8. 下列哪个是C语言中的控制流语句?A. ifB. switchC. forD. All of the above答案:D9. 在C语言中,哪个函数用于输出字符串到标准输出设备?A. printf()B. puts()C. cout()D. print()答案:B10. 下列哪个是C语言的字符串类型?A. charB. stringC. strD. text答案:A二、填空题(每题2分,共10分)1. 在C语言中,字符常量用____表示。
答案:单引号2. 在C语言中,一个数组的元素个数称为____。
答案:数组的长度或数组的维度3. 函数____用于输出格式化的数据到标准输出设备。
答案:printf4. 在C语言中,____关键字用于定义一个函数的返回类型。
武汉大学信息管理学院 C语言期末考试 试卷
武汉大学信息管理学院第一学期《C语言》期末考试试卷(A)年级_______ 专业学号___________ 姓名________一、选择:(20分)1、char str[]=“ab\n\\012\\\””;函数strlen(str)的计算结果是A、14B、7C、9D、102、在一个C源文件中,若定义一个只允许本文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、 externB、registerC、autoD、static3、以下对结构体变量stu1中成员age的非法引用是struct student{ int age;int num;} stu1,*p;P=&stu1;A、stu1.ageB、student.ageC、p->ageD、(*p).age4、以下语句输出结果是int a=110,b=017;printf(“%x,%d”,a++,b++);A、6e,15B、6e,16C、6f,15D、6f,165、正确的k的值是enum {a,b=5,c,d=4,e} k;k=e;A、3B、4C、5D、66、 int a=4,b=5,t=0;if (a>b) t=a,a=b,b=t;printf(“%d,%d”,a,b);此程序段的输出结果是A、5,4B、4,5C、5,0D、4,07 、以下for循环执行时,内循环体的总的执行次数是for (i=5;i;i- -)for(j=0;j<4;j++) { ……… }A、20B、24C、25D、308、现定义一个二维数组c[M][N]存放字符串“China”,“Tinajin”,“Education”,则,常量M和N的合理取值是A、3和9B、2和10C、4和9D、3和109、在定义int a[3][6]后,第16个元素是A、a[2][3]B、a[1][3]C、a[3][1]D、a[4][2]10、若定义int a,b,*p1=&a,*p2=&b;使p2指向a的赋值语句是A、*p2=&a;B、p2=&p1;C、p2=&*p1;D、p2=*&a;二、读程序写结果:(20分)三、下面的程序用来将十进制数转化为二进制数,例如输入一个整型数10,则输出1010,请在下列空白出填空。
- 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