武汉大学2012-2013年上学期3学分《C语言程序设计》期末试卷

合集下载

大学大一C语言程序设计期末考试试卷及答案剖析教学教材

大学大一C语言程序设计期末考试试卷及答案剖析教学教材

四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试C 语言程序设计试卷 试卷A答卷说明:1、本试卷共6页,答题纸3页,4个大题,35个小题,满分100分,120分钟完卷。

2、闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上答案为准。

3、本试卷适用于2011级1、2、3班。

一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。

每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( )A). -int B). in1_3 C). A_B!D D). const2、 不属于C 语言基本数据类型的是( )A). int B). union C). char D). unsigned3、 下面是对宏定义的描述。

不正确的是( )A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间C). 宏替换只是字符串的简单替代D). 宏替换时先检查类型,类型一致时才可以替换4、 C 语言中,″\\xfds ″在内存中占用的字节数是( )A).3 B).4 C).5 D).65、 设int x;则执行printf(″%x \n″,~x^x);的结果是( )A). ffffffff B). ff C). 0 D). 16、 对于while 语句,错误的说法是( )A).用条件控制循环体的执行次数 B).循环体至少要执行一次__________________学院__________级___________班 姓名_______________ 学号_______________………………………………(密)………………………………(封)………………………………(线)………………………………密 封 线 内 答 题 无 效C).循环体有可能一次也不执行D).循环体中可以包含若干条语句7、执行下列语句后输出的结果是( )int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);A).6,7,7 B).6,7,8 C).8,7,6 D).8,7,88、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )A).9,19 B).9,20 C).10,19 D).10,209、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同10、设int i,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).147 B).159 C).357 D).36911、执行完下列语句后,n的值是( )int n;for (n=0 ; n<100 ; n=2*n+1);A).125 B).126 C).127 D).12812、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )A).–132 B).–60 C). -24 D). 013、为了连接两个字符串s1与s2,应当使用( )A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 )14、设int a,*p;则语句p=&a;中的运算符“&”的含义是( )A).位与运算 B).逻辑与运算C).取指针内容 D).取变量地址15、下面输出的结果为( )i nt a=13, b=64;printf(“%d\n”, !a || (b>>3) );A).13 B).64C).1 D).016、下列定义正确的是( )A).enum t={a,b}x; B). enum t{1,2}x; C). e num {′+′,′-′}x;D). enum t{a,b}x;17、设有定义:struct u{int a[4];float b[3]; char c[16];}aa;则printf(″%d \n″,sizeof(aa));的输出是( )A).32 B).36 C).12 D).818、 数据-54.78在文本文件中占用的字节个数是( )A).4 B).5 C).6 D).819、 在宏定义#define p(r) 3.14*r 中,请问宏名是( )A). p B). p(r) C). 3.14*r D). p(r) 3.14*r 20、 要打开一个已存在的用于修改的非空二进制文件“hello.txt ”,正确语句是( )A). fp=fopen( "hello.txt ","r" ) B). fp=fopen( "hello.txt ","ab+" ) C). fp=fopen( "hello.txt ","w" ) D). fp=fopen( "hello.txt ","r+" )二、填空题(仔细阅读每小题的说明和源代码,并将正确答案写到答题纸上对应的题号处。

C语言程序设计期末考试试题及答案

C语言程序设计期末考试试题及答案

C语言程序设计期末考试试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,正确的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C3. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B4. 下列关于数组的描述中,错误的是?A. 数组可以是多维的B. 数组的下标从0开始C. 数组的大小在编译时确定D. 数组可以动态分配答案:D5. C语言中,以下哪个关键字用于定义一个指针?A. intB. charC. *D. void答案:C6. 在C语言中,以下哪个关键字用于定义一个静态变量?A. staticB. externC. registerD. auto答案:A7. 下列关于C语言中文件操作的描述中,正确的是?A. 文件操作只能使用标准库函数B. 文件指针必须使用FILE类型C. 文件操作必须使用fclose函数关闭文件D. 文件操作不能使用缓冲区答案:B8. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. typedefC. enumD. struct答案:A9. 下列关于C语言中位运算的描述中,错误的是?A. & 表示按位与B. | 表示按位或C. ^ 表示按位异或D. ~ 表示按位取反答案:B10. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。

答案:42. C语言中,使用______关键字可以定义一个无限循环。

答案:while3. C语言中,数组的元素默认初始化为______。

大学《C语言程序设计》期末考试编程题库及答案

大学《C语言程序设计》期末考试编程题库及答案

1 题目:根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。

#include<stdio.h>#include<math.h>main(){ float x,y;printf(“enter x:\n”);scanf(“%f”,&x);if(x<=0)y=0;else if(x<=10)y=x;elsey=0.5+sin(x);printf(“x=%f,y=%f\n”,x,y);}2题目:输入一个整数,当为65时显示A,66时显示B,68时显示C,其他值时显示END。

(可选用switch语句编写)#include <stdio.h>main(){ int x;printf(“enter x:\n”);scanf(“%d”,&x);if(x==65)printf(“x=%d, show %c\n”,x,x);else if(x==66)printf(“x=%d, sh ow %c\n”,x,x);else if(x==67)printf(“x=%d, show %c\n”,x,x);elseprintf(“x=%d, show END\n”,x);}3题目:编写程序将用户输入的字母进行大小写转换#include<stdio.h>main(){char x,y ;printf("enter x:\n");scanf("%c",&x);if(x>='a' && x<='z')y=x-32;else if(x>='A' && x<='Z')y=x+32;printf("x=%c, y=%c\n",x,y);}4题目:输入一个整数,判断它是奇数还是偶数并输出。

大学c语言期末考试题及答案

大学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语言程序设计期末考试试卷

c语言程序设计期末考试试卷

c语言程序设计期末考试试卷C语言程序设计期末考试试卷一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项表示一个字符常量?- A. 'A'- B. "A"- C. \A- D. A2. 以下哪个是C语言中的合法标识符?- A. 2variable- B. variable2- C. variable!3. C语言中,以下哪个语句用于定义一个整型数组?- A. int array[10] = {0};- B. int [10] array = {0};- C. int array = [10] = {0};- D. int array[10];4. 以下哪个是C语言中定义函数的关键字?- A. function- B. method- C. def- D. int5. C语言中,以下哪个是正确的函数声明?- A. int add(int a, int b)- B. int add(int a, int b) {}- C. int add(int, int);- D. void add(int a, int b);6. 在C语言中,以下哪个语句用于实现循环?- A. do-while- B. for- C. switch-case- D. if-else7. 在C语言中,以下哪个语句用于实现条件判断? - A. if-else- B. switch-case- C. while- D. for8. 在C语言中,以下哪个语句用于实现跳转?- A. return- B. break- C. continue- D. goto9. 在C语言中,以下哪个是正确的字符串字面量? - A. "Hello World"- B. 'Hello World'- C. "hello world"- D. {"Hello World"}10. 在C语言中,以下哪个是正确的结构体定义?- A. struct person { int age; char name[20]; };- B. struct { int age; char name[20]; } person;- C. struct person { int age; char name; };- D. struct person int age; char name[20];二、填空题(每空1分,共10分)1. 在C语言中,一个整型变量的默认值是______。

大学c语言期末考试题库及答案

大学c语言期末考试题库及答案

大学c语言期末考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. voidC. returnD. function答案:A2. 以下哪个选项是正确的C语言变量声明?A. int a = b = 2;B. int a = 2, b;C. int a = 2.0;D. int a = 2, b = 3.0;答案:B3. 在C语言中,以下哪个运算符用于逻辑“与”操作?A. &&B. ||C. !D. &答案:A4. 以下哪个选项是C语言中的合法数组声明?A. int array[5] = {1, 2, 3, 4, 5};B. int array[] = {1, 2, 3, 4, 5};C. int array[5] = {1, 2, 3};D. int array[5] = {1, 2, 3, 4, 5, 6};答案:B5. C语言中,以下哪个函数用于计算两个整数的和?A. max()B. pow()C. sqrt()D. sum()答案:D6. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A7. 以下哪个选项是C语言中的合法指针声明?A. int *ptr;B. int *ptr = 0;C. int *ptr = "hello";D. int *ptr = 5;答案:A8. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B9. C语言中,以下哪个关键字用于创建一个循环,直到满足某个条件?A. whileB. forC. do-whileD. switch答案:C10. 在C语言中,以下哪个函数用于动态内存分配?A. malloc()B. calloc()C. realloc()D. free()答案:A二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

C程序设计期末考试习题(含答案)

C程序设计期末考试习题(含答案)

c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( ).A)_1234_ B) _1_2 C)int_2_ D) 2_int_3。

以下定义语句中正确的是()。

A)char a='A’b=’B’; B)float a=b=10.0;C)int a=10,*b=&a;D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1。

25; char c=’A’;则下面语句中错误的是()。

A) a++;B)b++ C)c++;D) d++;5。

以下4个选项中,不能作为一条C语句的是().A) {;} B) a=0,b=0,c=0; C)if(a〉0); D) if(b==0)m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是().A)a=a+b=b++ B)w%(int)a+b)C)(c+w)%(int)a D)w=a==b; 7。

设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。

A)p=1; B)*q=2;C)q=p; D) *p=5;8。

设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。

A) scanf(“%d”,pa) ; B)scanf(“%d",a);C) scanf(“%d”,&pa); D)scanf(“%d”,*pa);9。

C语言期末考试试题及其答案

C语言期末考试试题及其答案

C语言期末考试试题及其答案------------------------------------------作者------------------------------------------日期、以下不是 语言的特点的是 ☎ ✆✌、 语言简洁、紧凑、 能够编制出功能复杂的程序、 语言可以直接对硬件进行操作、 语言移植性好、以下不正确的 语言标识符是 ☎ ✆✌、 ✌ 、 ♋♌♍ 、 ♋♉♌♍ 、 ♋♌♍、一个 语言程序是由 ☎ ✆✌、 一个主程序和若干子程序组成、 函数组成、 若干过程组成、 若干子程序组成、一个算法应该具有❽确定性❾等 个特性,对另外 个特性的描述中错误的是 ☎ ✆✌、 有零个或多个输入、 有零个或多个输出、 有穷性、 可行性、 设变量♋是整型,♐是实型,♓是双精度型,则表达式 ❻♋❼♓✉♐值的数据类型为 ☎ ✆✌、 ♓⏹♦ 、 ♐●☐♋♦ 、 ♎☐◆♌●♏ 、 不确定、在 语言中,♍♒♋❒型数据在内存中的存储形式是 ☎ ✆✌、 补码 、反码 、源码 、✌✋✋码、有如下程序,输入数据: <♍>后( 表示回车),⌧的值是 ☎ ✆ 。

✁♓⏹♍●◆♎♏♦♦♎♓☐♒❍♋♓⏹☎✆♓⏹♦ ⌧♐●☐♋♦ ⍓♦♍♋⏹♐☎✂♎♐✂⌧⍓✆❝✌、  、  、  、 、若有以下定义♓⏹♦ ♋♌ ♐●☐♋♦ ⌧,则正确的赋值语句是 ☎ ✆✌、 ♋♌、 ♌、 ♋♌、 ♌♓⏹♦☎⌧✆、以下程序的执行结果是 ☎ ✆✁♓⏹♍●◆♎♏♦♦♎♓☐♒♓⏹♦ ♓☐❒♓⏹♦♐☎✂♎♎⏹✂♓✆❝✌、  、  、  、 、巳知字母✌的✌✋✋码是 ,以下程序的执行结果是 ☎ ✆✁♓⏹♍●◆♎♏♦♦♎♓☐♒❍♋♓⏹☎✆☐❒♓⏹♦♐☎✂♎♎⏹✂♍♍✆✌、 ✌✡ 、  、  、 、下列运算符中优先级最高的是 ☎ ✆✌、 < 、 十 、  、 ✐=、设⌧、⍓和 是♓⏹♦型变量,且⌧= ,⍓= , = ,则下面表达式中值为 是 ☎ ✆ 。

C语言程序设计期末考试试卷及答案1

C语言程序设计期末考试试卷及答案1

C语言程序设计期末考试试卷及答案1------------------------------------------作者------------------------------------------日期一、单项选择题 ♉♉♉♉♉♉是合法的用户自定义标识符。

✌、 ♌♌ 、♐●☐♋♦ 、♐❒ 、 ♉♓♦♦ 若变量已正确定义并赋值,表达式♉♉♉♉♉♉不符合 语言语法。

✌、♋✉♌♍ 、  、 ♌ 、♋♌♍ ♉♉♉♉♉是不正确的字符常量。

✌、 ⏹ 、  、✂♋✂ 、  在  程序中,用♉♉♉♉♉表示逻辑值“真”。

✌、 、非  的数 、非  的数 、 大于  的数 ♉♉♉♉♉♉把⌧、⍓定义成♐●☐♋♦类型变量,并赋同一初值。

✌、♐●☐♋♦ ⌧ ⍓ 、♐●☐♋♦ ⌧ ⍓✉、♐●☐♋♦ ⌧ ⍓⌧ 、♐●☐♋♦ ⌧⍓ 若变量已正确定义,表达式♉♉♉♉♉♉的值不是 。

✌、  、  、♋ 、 ♈ 若变量已正确定义,语句“♓♐☎♋♌✆  ♏●♦♏ ”和♉♉♉♉♉♉等价。

✌、 ☎♋♌✆✍ 、 ♋♌、 ♋♌ 、♋♌ ✍   ♉♉♉♉♉,则♋和♌的值都是 。

♦♍♋⏹♐☎✂♋♎ ♌♎✂♋ ♌✆;✌、   、   、♋ ♌ 、♋ ♌ 下列程序的输出结果是♉♉♉♉♉。

♐◆⏹☎♓⏹♦ ♋ ♓⏹♦ ♌ ♓⏹♦ ♍✆♍ ♋✉♌ ❝❖☐♓♎ ❍♋♓⏹☎ ✆♓⏹♦ ♍♐◆⏹☎♍✆☐❒♓⏹♦♐☎❾♎⏹❾♍✆❝✌、 、 、 、无法确定 在 程序中,若对函数类型未加说明,则函数的隐含类型为♉♉✌♉♉♉。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 3 分,共 30 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC classD char答案:C解析:在 C 语言中,class 不是关键字,int、float 和 char 都是常见的数据类型关键字。

2、以下变量定义中,正确的是()A int a=b=5;B char a='A';C float a=55, b=66;D double a; b;答案:C解析:A 选项中不能在定义时连续赋值;B 选项应该是 char a ='A';注意单引号;D 选项应该是 double a, b; 中间用逗号分隔。

3、以下程序段的输出结果是()```cint a = 5, b = 4, c = 6;if (a > b && a > c)printf("a 最大\n");else if (b > a && b > c)printf("b 最大\n");elseprintf("c 最大\n");```A a 最大B b 最大C c 最大D 编译错误答案:C解析:因为 5 不大于 6,所以执行 else 部分,输出“c 最大”。

4、以下循环语句执行的次数是()```cfor (int i = 0; i < 5; i++){printf("%d ", i);}```A 4 次B 5 次C 6 次D 无限次答案:B解析:从 0 到 4 ,一共 5 次。

5、以下数组定义中,正确的是()A int a5 ={1, 2, 3, 4, 5, 6};B int a ={1, 2, 3};C int a5 ={1, 2};D int a3 =(1, 2, 3);答案:B解析:A 选项数组长度为 5,却初始化了 6 个元素;C 选项只初始化了前两个元素,后面三个元素默认为 0;D 选项初始化方式错误,应该用花括号。

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案

C语言程序设计期末考试试题含答案一、选择题(每题 2 分,共 40 分)1、以下选项中,不是 C 语言关键字的是()A intB floatC charD string答案:D解释:string 不是 C 语言的关键字,C 语言中表示字符串通常使用字符数组。

2、以下能正确表示八进制整数的是()A 0o123B 0123C 0x123D 123答案:B解释:在 C 语言中,八进制整数以数字 0 开头,所以 0123 是八进制整数。

3、以下变量定义中,合法的是()A int a=b=1;B char a='\0';C float 2a;D double a&;答案:B解释:A 选项中不能连续赋值;C 选项变量名不能以数字开头;D 选项变量名不能包含特殊字符&。

4、若有定义:int a=5, b=2; 则表达式 a/b 的值是()A 25B 2C 20D 3答案:B解释:C 语言中,两个整数相除结果为整数,舍去小数部分。

5、若有定义:int a5 ={1, 2, 3, 4, 5};则 a2的值是()A 2B 3C 4D 5答案:B解释:数组下标从 0 开始,所以 a2对应的值是 3 。

6、以下关于函数的叙述中,正确的是()A 函数可以嵌套定义B 函数可以嵌套调用C 函数可以没有返回值D 以上都不对答案:C解释:函数不能嵌套定义,但可以嵌套调用。

函数可以没有返回值,此时函数类型为 void 。

7、若有以下函数定义:```cint fun(int a, int b){return a + b;}```则调用 fun(1, 2)的返回值是()A 1B 2C 3D 4答案:C解释:函数 fun 实现了两个整数的相加,所以 fun(1, 2)的返回值是3 。

8、以下关于指针的叙述中,错误的是()A 指针可以指向变量B 指针可以指向数组C 指针可以指向函数D 指针不可以进行加减运算答案:D解释:指针可以进行加减运算,但运算的结果要根据指针所指向的数据类型来确定。

C语言程序设计期末考试卷及答案.doc

C语言程序设计期末考试卷及答案.doc

..C语言程序设计期末考试卷及答案一、单项选择题。

从A 、B 、C 、D 四个选项中,选择一个最佳答案填入括号内( 每小题1分,共计30分)。

1.一个C 语言程序的执行是从( )。

A )本程序文件的第一个函数开始,到本程序文件的最后一个函数结束B )本程序的main 函数开始,到main 函数结束C )本程序的main 函数开始,到本程序文件的最后一个函数结束D )本程序文件的第一个函数开始,到本程序的main 函数结束2.下列选项中不属于...C 语言关键字的是( )。

A )switch B )printf C )default D )case3.设有语句 int a = 4; ,则执行了语句 a += a -= a * a; 后,变量a 的值是( )。

A )24B ) -24C )4D )164.已知int i;float d;,则正确的表达式是( )。

A )(int d)B )int(d)%iC )(int)d%iD )int(d%i)5.已知int i,a;,执行语句i=(a=3*9,a/5),a+11; 后,变量i 的值是( )。

A )5B )16C )27D )386.下列选项中合法的字符型常量是( )。

A )"a"B )'\n'C )"\n"D )a7.下面程序的运行结果是( )。

#include <stdio.h> void main( ) { int k = 15;printf("k = %d,k = %o,k = %x\n",k,k,k); }A )k = 15,k = 15,k = 15B )k = 15,k = 17,k = 17C )k = 15,k = 017,k = 0xfD )k = 15,k = 17,k = f8.已知a,b,c 为int 类型,执行语句:scanf ("%d%d%d",&a,&b,&c );使得a 为10,b 为20,c 为30,以下不正确...的输入形式是( )。

c程序设计大学期末考试题及答案

c程序设计大学期末考试题及答案

c程序设计大学期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于声明函数?A. intB. floatC. returnD. void答案:D2. 在C语言中,以下哪个运算符用于逻辑与操作?A. &&B. ||C. !D. %答案:A3. 若有定义int a=5;,则表达式a++的值为多少?A. 4B. 5C. 6D. 0答案:B4. 在C语言中,以下哪个函数用于计算字符串的长度?A. strcatB. strcmpC. strcpyD. strlen答案:D5. 下面哪个选项是C语言中的合法整型常量?A. 0x12B. 0x1zC. 0x1.2D. 0x1.2e答案:A6. C语言中,以下哪个选项是正确的二维数组声明?A. int a[3,4];B. int a[3][4];C. int a[3][];D. int a[][];答案:B7. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. 'Hello World!'答案:A8. 若有定义char c='A';,则表达式c+32的值为多少?A. 65B. 97C. 66D. 98答案:B9. 在C语言中,以下哪个选项是正确的结构体声明?A. struct Student {int age; char name[20];} stu;B. struct {int age; char name[20];} stu;C. struct Student {int age; char name[20];} stu[];D. struct {int age; char name[20];} stu[];答案:A10. 在C语言中,以下哪个选项是正确的指针声明?A. int *p;B. *int p;C. int *p[];D. int (*p)[];答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个无返回值的函数的关键字是________。

C++程序设计期末试卷2012-2013-1-A(参考答案)

C++程序设计期末试卷2012-2013-1-A(参考答案)
void disp()
{
cout<<"体积:"<<volume<<",表面积:"<<area<<endl;
}
};
void main()
{
Boxobj1(4),obj2;
obj2.seta(10);
obj1.getvolume();
obj1.getarea();
cout<<"obj1=>";
obj1.disp();
#include<iostream.h>
class Box
{
float a;
float volume;
float area;
public:
Box(){}
Box(floatr){a=r;}
void getvolume(){volume=a*a*a;}
void getarea(){area=6*a*a;}
obj2.getvolume();
obj2.getarea();
cout<<"obj2=>";
obj2.disp();
}
cout<<endl; //输出换行符
}
}
2、设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
Box类包含三个私有数据成员a(立方体边长)、volume(体积)和area(表面积),另有两个构造函数以及seta()(设置立方体边长)、getvolume()(计算体积)、getarea()(计算表面积)和disp()(输出结果)。写出Box类的定义及主函数对该类进行测试。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题(每小题2分,共34分)1. 以下不合法的用户标识符是__C____。

A、j2_KEYB、DoubleC、4dD、_8_复习要点:标识符的定义:首字符必须是字母或下划线;后续字符可以是字母、数字或下画线。

C、4d 中用了‘4’做首字符,所以不合法2.以下叙述中正确的是__A____。

A、C程序中注释部分可以出现在程序中任意合适的地方B、花括号“{”和“}”只能作为函数体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数)D、分号是C语言之间的分隔符,不是语句的一部分复习要点:A、C程序中注释部分可以出现在程序中任意合适的地方。

对,注释由/* */包含B、花括号“{”和“}”只能作为函数体的定界符,不对。

还可以用做复合语句的定界符,也可以做结构体的定界符C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数),不对。

库函数声明和主函数声明已经给定,只可以调用D、分号是C语言之间的分隔符,不是语句的一部分,不对。

分号是语句的结束,是语句的组成部分3.设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____。

A、0B、264C、144D、-264原因:赋值运算赋”=”和符合赋值运算赋都是右结合性,所以,先执行a=12然后执行a-=a*a,即a=a-a*a, a的值为-132。

最后执行a+=a,即a=a+a.4.假定x和y为double型,表达式x=2,y=x+3/2的值是__D____。

A、3.500000B、3C、2.000000D、3.000000复习要点:各种类型数据运算后的数据类型在算术运算时,数据运算时的类型按照数据类型自动转换的原则进行。

就这道体来说,3/2是整数和整数相除,计算结果还是整数,且没有4舍5入的概念。

所以3/2的结果为1。

则x+1是double类型和int类型的和,结果的类型应该为double类型。

即2.0+1的最后结果3.0000005.语句:printf("%d",(a=2)&&(b=-2));的输出结果是___B___。

A、2B、1C、-4D、-2复习要点:逻辑运算符”&&”是”与”运算,即只有两个操作数为真,结果才为真。

在判断两个操作a和b数的值时,都是非0,即a和b为真。

运算结果为真用1表示,故B 对,6.若变量c为char类型,能正确判断出c为小写字母的表达式是___D___。

A、´a´<=c<=´z´B、(c>=´a´)||(c<=´z´)C、(´a´<=c)and(´z´>=c)D、(c>=´a´)&&(c<=´z´)原因:A)错,不可能用两个运算符“<=”或两个运算符“>=”表达一个数值的范围,学生常常犯这个错误B)错,逻辑运算符”||”是”或”运算,即只要有一个操作数为真,结果为真,这里显然要两个操作数都为真,所以不可以用C)错,and 不是一个C语言运算符复习要点:逻辑运算符”&&”是”与”运算,即只有两个操作数为真,结果才为真。

7.在嵌套使用if语句时,C语言规定else总是___C___。

A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的if配对D、和之前的第一个if配对这道题出得不太好,正确回答应该是:在语法允许的情况下,和之前与其最近的且不带else 的if配对。

例如:if(a){ if(b} a=1; }elseb=2;这里else 只能和if(a) 配对。

不可以和if(b},因为在语法上,{ if(b} a=1; }是一条复合语句,语法上不可能和复合语句外的语句配对8.以下循环体的执行次数是__C____。

main(){inti,j;for (i=0,j=1; i<=j+1;i+=2,j--)printf("%d \n",i);}A、3B、2C、1D、0原因:循环控制表达式i<=j+1为假时,循环结束第一次判断:i=0, j=1:i<=j+1为真。

执行1次第二次判断:i=2, j=0:i<=j+1为假,退出9.int a[2][3]={{1},{2,3}};,则a[0][1]的值是_D_____。

A.1 B. 2C. 3D. 0复习要点:数组的初始化,给部分数组元素赋值时,没有赋值的数组元素的值为010. 以下对二维数组a的正确说明是__B____。

A. inta[5][];B. float a[5][4];C. double a[][4];D. float a(5)(4);复习要点:数组的定义:元素个数国定,类型相同的元素集合。

即数组定义时,下标运算符[]中必须时整型常量表达式。

所以:A和B 显然错,下标运算符[]中无值且没有初始化D. 错,下标运算符不可以用()11.有以下程序main(){inti,t[][3]={9,8,7,6,5,4,3,2,1};for(i=0;i<3;i++)printf("%d",t[2-i][i]);}判序执行后的输出结果是___B___。

A、753B、357C、369D、751原因:循环变量i=0 ,1, 2第一次i=0 :输出t[2][0] 3第二次i=1 :输出t[1][1] 5第三次i=2 :输出t[0][2] 712.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是__D____。

A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参C、函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参复习要点:函数调用的用法,前三个都是正确的。

而函数的形参只能用变量类型,数组类型,指针类型变量等等13.以下函数值的类型是__A____。

fun(float x){float y;y=3*x-4;return y;}A、intB、不确定C、voidD、float理由:函数定义时,如果不写函数的类型,默认为int14. 若有下列定义:int a[5],*p=a; 则对a数组元素地址的正确引用是__B____。

A、&aB、p+2C、a++D、&a[5]原因:A)错,数组名a表示数组的首地址,再用取地址运算符“&”,错C)错,数组名a表示数组的首地址,是国定值,不可以运算D)错,数组名a表示数组的首地址,是国定值,不可以运算B)对,p+2 表示引用元素a[2]15.若有定义和语句:int a[4][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, (*p)[3] = a, *q[4];q[0]=a[0];则不能够正确表示a数组元素的表达式是______。

A、(*(p+1))[1]B、a[4][3]C、q[0][1]D、p[2][2]题目超范围16.已定义如下函数:int fun(int *p) {return *p;}, 该函数的返回值是__D____。

A、不确定的值B、形参p中存放的值C、形参p的地址值D、形参p所指存储单元的值复习要点:指针运算符“*”,*p 表示取得指针变量p所指的变量的值,这是p中存储的是地址值17.能正确表示a和b同时为正或同时为负的逻辑表达式是___D___。

A、(a>=0‖b>=0)&&(a<0‖b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>0原因:A、错(a>=0‖b>=0)表示a和b不一定同时为正。

(a<0‖b<0) 表示a和b二、填空题(每小题2分,共16分)1.表示条件:10<x<100或x<0的C语言表达式是___(10<x&&x<100)|| (x<0)_________。

2. 若函数调用语句为f(a, b, f(a+b,a-b,b));,则函数f的参数个数是___3_________。

分别为a, b和f(a+b,a-b,b)。

第三个参数是一个函数调用3.若有以下整型的a数组:int a[10]={9,4,12,8,2,10,7,5,1,3};则:a[a[9]]的值为______8______;a[a[4]+a[8]]的值为______8______。

计算过程:a[9] 的值3a[a[9]]即为a[3]. 其值为8a[4]+a[8]为2+1a[a[4]+a[8]]即为a[3],其值为84.若有以下程序段:int a[5]={2,4,6,8,10}, *p, k, m;p = &a[2];k = *(p--);m = *(p--);则程序段执行完后k的值为_____6_______; m的值为_____4_______。

计算过程:p = &a[2]; p指向a[2]k = *(p--); p—是后缀减。

先把a[2]的值6赋给k, 然后p--,指向a[1]m = *(p--); 这时,先把a[1]的值4赋给m5.下面程序的功能是输出以下形式的金字塔图案是:****************在下划线处填入的正确的表达式。

main(){ inti,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)printf(" ");for(j=1;j<=___2*i-1_________;j++) printf("*");printf("\n");}}"*"的个数是随行变量i每次增加2,填2*i-16.以下程序的功能是计算:1+12+123+1234+12345。

请填空。

Main(){ int t= 0,s=0,I;for (I=1;I<=5;I++){t=I + ___t*10_________ ;s=s+t;}printf(“s=%d\n”,s);}当前项t得值为已经得到前一项值乘10再加循环变量I值, t=t*10+I7.下面的程序用指针变量输出数值,其中两条语句有语法错误,请在空格处填上正确语句。

#include <stdio.h>void main(){int a[ ]={1,2,3,4,5,6,7,8,9,10},*p;*p=a; /*语句错误*/ ____p=a________printf("%f\n",*p+9); /*语句错误*/ ____ printf("%d\n",*p+9); ________}printf("%f\n",*p+9); 改为printf("%d\n",*p+9); 格式符d 用于输出整数8.下面的程序采用辗转相除法与函数求两个整数的最大公约数,其中两条语句有语法或算法错误,请在空格处填上正确语句。

相关文档
最新文档