哈尔滨工业大学C语言期末试卷(2007秋季笔试B卷)
- 格式:doc
- 大小:99.50 KB
- 文档页数:17
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
哈工大2007年秋季学期《高级语言程序设计》试题一、判断题(每题1分,共15分)【请将下列每个小题的正确答案填在本题后的表格中,正确的使用“”,错误的使用“”】1、在定义引用时,如果不给它赋初值,那么可以在定义后进行赋值。
2、引用可以是函数的返回值,返回引用的调用函数可以作为左值,如fun(x,y)++。
3、设a是某二维数组的数组名,则a++是可以的。
4、C++中可以定义内联函数,所有函数只要在定义时在其返回类型前加上inline 即成为内联函数。
5、设TPoint是一个已经定义的类,并提供了重载的带两个整型参数的构造函数,那么语句TPoint p5 = (1, 8); 是合法的。
6、在静态成员函数中,引用非静态成员时要通过对象才能引用。
7、类的构造函数可以对类中静态的数据成员进行初始化,被初始化的静态数据成员将保持该值到下一次被改变时为止。
8、设a2是某类型T的常对象,p1是T类型的常对象常地址指针,则p1 = &a2是合法的,而*p1 = a2是非法的。
9、构造函数可具有类型转换的作用。
构造函数所提供的类型转换和类中定义的类型转换成员函数的作用是相同的。
10、在公有继承方式下,基类中成员在派生类中的访问权限不被改变,派生类的对象对基类成员的访问权限没有限制。
11、在使用强制数据为类类型给对象数组元素赋值时,先调用构造函数创建临时对象,并将给临时对象给对象数组元素赋值,然后析构该临时对象。
12、派生类构造函数调用基类构造函数的顺序取决于定义派生类时所给定的基类顺序,与派生类构造函数中成员初始化表里基类构造函数出现的顺序无关。
13、只要有虚函数,那么在类的派生过程中即可实现动态联编。
14、在类的构造函数中,是不能调用该类的虚函数的,只有成员函数才能调用虚函数。
15、如果一个函数具有说明语句,那么默认参数可以在说明语句中设置,也可以在定义实现时设置。
二、程序阅读理解(每题5分,共25分)1、下面给出了一个对运算符++以成员函数方式进行定义的重载运算符的例子,完成如下要求:(1)给出程序的输出结果;(2)试将其改写为以友元函数的形式定义运算符++的重载。
哈尔滨工业大学(威海)2008/2009秋季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 平时 (30%) 总分分数试卷说明: 1. 卷面总分100分,取卷面成绩的70%计入总分;2. 选择题、填空题与写运行结果题必须在答题卡内答题;3. 答题时禁止拆开试卷钉,背面即为草稿纸;4. 答题时间105分钟。
一、单项选择题(本题16分,每小题2分)题号 1 2 3 4 5 6 7 8 答案CDCDCCDB1. C 语言源程序文件经过C 编译程序编译连接之后生成一个后缀为______的文件。
A) .c B) .obj C) .exe D) .cpp 2. 表达式 !(x>0||y>0) 等价于_____。
A) !x>0||!y>0 B) !(x>0)||!(y>0) C)!x>0&&!y>0 D) !(x>0)&&!(y>0) 3. 已知函数的调用形式:fread(buffer, size, count, fp); 其中buffer 代表的 是( )。
A) 一个整型变量,代表要读入的数据项总数 B) 一个文件指针,指向要读入的文件C) 一个指针,指向要存放读入数据的地址 D) 一个存储区,存放要读入的数据项 4. 以下不能正确定义二维数组的选项是A) int a[2][2]={{1},{2}}; B) int a[][2]={1,2,3,4};C) int a[2][2]={{1},2,3}; D) int a[2][]={{1,2},{3,4}}; 5. 以下程序的输出结果是 _____。
main() {char ch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"\n",ch[1]);}A) \"AAAA\" B) \"BBB\" C) "BBB" D) "AAAA"号学 名 姓教研室主任签字: 注意行为规范 遵守考试纪律6. 对y在[3,23]和[100,200]范围内为真的确表达式为_____。
2022年哈尔滨工业大学公共课《C语言》科目期末试卷B(有答案)一、填空题1、设有一输入函数scanf("%d”,k);它不能使float类型变量k得到正确数值的原因是_______未指明变量k的地址和_______格式控制符与变量类型不匹配。
2、一个C语言源程序由若干函数组成,其中至少应含有一个________3、结构化程序由________、________ 、________ 3种基本结构组成。
4、把以下多项式写成只含7次乘法运算,其余皆为加、减运算的C语言表达式为_______。
5x7+3x6-4x5+2x1+x3-6x2+x+105、若有定义语句:charc='\010';则变量c中包含的字符个数为_______。
6、请读程序段:int x=1;printf("%d\n",~x);上面程序段的输出结果是_______。
7、下面程序段的运行结果是_______。
x=2;do{printf("*");x--;)while(!x==0);8、下面程序段将输出computer。
请填空。
char c[]="It is a computer";for(i=0;_______;i++){_______;printf("%c",c[j]);}9、下面程序段的运行结果是_______。
int i=5;char c[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);10、以下程序段通过移动指针变量m,给如图9-7所示连续动态存储单元赋值。
请填空。
(假设程序段中的所有变量均已正确说明。
)for(k=0;k<10;k++,m++)scanf("%d",_______);二、选择题11、下面4个选项中,是不合法的转义字符的选项是()A.'\"'B.'\1011 'C.'\0ll'D.'\abe'\\ '\' '\f' '\0ll'\xf' ' \a' '\]' 'xlf'12、下面4个选项中,是正确的数值常量或字符常量的选项是( )13、以下叙述正确的是A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误14、以下叙述不正确的是( )A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面15、在C语言中,一维数组的定义方式为:类型说明符数组名()。
哈工大c语言笔试试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. C语言中,哪个函数用于计算字符数组的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A3. 在C语言中,下列哪个运算符用于逻辑与操作?A. &&B. ||C. !D. %答案:A4. 下列哪个选项不是C语言中的基本数据类型?A. intB. charC. floatD. string答案:D5. C语言中,用于定义一个结构体的关键字是?A. structB. unionC. enumD. typedef答案:A6. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A7. 在C语言中,下列哪个选项表示无限循环?A. for(;;)B. while(1)C. do-whileD. all of the above答案:D8. C语言中,哪个函数用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. printf答案:B9. 在C语言中,下列哪个选项表示按位与操作?A. &B. &&C. %D. !答案:A10. 下列哪个选项是C语言的预处理指令?A. #includeB. #defineC. both of the aboveD. none of the above答案:C二、填空题(每题2分,共20分)1. C语言中,用于定义一个变量的关键字是________。
答案:int2. C语言中,用于声明一个函数的关键字是________。
答案:void3. 在C语言中,________运算符用于比较两个值是否相等。
答案:==4. C语言中,________关键字用于定义一个数组。
一、单项选择题1.在 C语言中 ,下边字符串能用作变量名的是 ()。
A、 a+bB、autoC、2-andD、a22. 若 double x=2 , y;则履行 y=x+3/2 ;后, y的值是 ()。
A、 3.500000 B. 3.000000 C. 2.000000 D.33.以下对于 C语言中字符常量与字符串常量的表达中,错误的选项是()。
A、字符常量是用单撇号括起来的一个字符B、空格字符也可用作字符常量C、字符串常量是用单撇号括起来的一个字符序列D、字符串常量是用双撇号括起来的一个字符序列4.如有以下变量说明和数据的输入方式,则正确的输入语句为()。
变量说明: float x1,x2;数据的输入方式: 4.52< 回车 >3.5<回车 >A、scanf(“ %f,%f”,&x1,&x2; )B、scanf(“ %f%f”,&x1,&x2; )C、scanf(“ %3.2f,%2.1f ”,&x1,&x2; )D、scanf(“ %3.2f%2.1f ”,&x1,&x2);6. 在一个源文件中定义的全局变量的作用域为()。
A.本文件的所有范围B.从定义该变量开始至本文件结束C.本函数的所有范围D.本程序的所有范围7.当调用函数时,实参是一个数组名,则向函数传递的是()。
A、数组的长度B、数组的首地点C、数组每一个元素的地点D、数组每个元素中的值8.若 j 为整型变量,则下边while 循环 ()。
j=10;while(j!=0)j=j-1;A、履行 0次B、履行 1次C、履行 10次D、履行无穷次9. 在 while(x)语句中的 x 与下边条件表达式等价的是:()。
A、x!=0B、 x==1C、x!=1D、x==010. 以下对 C 语言函数的描绘中,正确的选项是()。
A、调用函数时,参数能够是表达式B、函数的定义能够是嵌套C、函数一定有返回值D、所有函数一定在同一个程序言件中定义12.C 语言中函数返回值的种类由 ()决定的。
江 苏 大 学 试 题
(2007-2008学年第二学期)
课程名称 计算机基础和程序设计(C 语言)(II ) 开课学院 计算机学院
使用班级 07级理工专业 考试日期 2008年
江苏大学试题第2页
江苏大学试题第3页
江苏大学试题答卷第11页
(2007-2008学年第二学期)
课程名称计算机基础和程序设计(C语言)(II)开课学院计算机学院使用班级07级理工专业考试日期2008
一、选择题(30分,每小题1分)
请将本题答案涂在答题卡上,写在别处本题不得分。
二、填空题(10分,每题1分)
江苏大学试题答卷第12页
三、阅读程序题(30分,其中(1)-(6)每空3分,(7)-(12)每空2分)
江苏大学试题答卷第13页四、完善程序题(30分,每空2分)。
哈尔滨工业大学C语言期末试卷(2007秋季人文学院笔试A卷)一、填空题(共20分,每空2分)1.C语言中简单数据类型包括、、。
2.C语言中用_______表示逻辑值“假”,用________表示逻辑值“真”。
3. char *p[10];这条语句的含义是:__ ___ _ _ 。
4.设有语句“int a=3;”,执行语句“printf(”%d”,-a++ );”后,输出结果是 , 变量a的值是。
5. 如果在程序中定义静态变量和全局变量时,未明确指明其初始值,那么它们可以在程序编译阶段自动被初始化为。
6. 在C语言中,可以用定义一种新的数据类型。
二、选择题:(共16分,每题2分)1.在C语言中,函数的隐含存储类别是()。
A) auto B) static C) extern D) 无存储类别2.若用数组名作为函数调用时的实参,则实际上传递给形参的是()。
A.数组的首地址 B. 数组的第一个元素值C.数组中全部元素的值 D. 数组元素的个数3.已知 struct sk{int a;float b;}data,*p;若有p=&data,则对data中的成员a正确引用是()A. (*p).dataB.(*p).aC.p->data.aD. p.data.a4.在while(x)语句中的x与下面条件表达式等价的是:。
A. x!=0B. x==1C. x!=1D. x==05.二维数组a有m行n列,则在a[i][j]之前的元素个数为()。
A. j*n+iB. i*n+jC. i*n+j-1D. i*n+j+16.设有声明语句:int a=1,b=0;则执行以下语句后输出为:。
switch (a){case 1:switch (b){case 0: printf("**0**");break;case 1: printf("**1**");break;}case 2: printf("**2**");break;}A **0**B **0****2**C **0****1****2**D 有语法错误7.以下程序运行结果是()main(){char s[]=”Address”;printf(”%d\n”, strlen(s));}A) 7 B) 8C) 9 D) 108.以下不正确的描述是()A) 在函数外部定义的变量是全局变量B) 在函数内部定义的变量是局部变量C) 函数的形参是局部变量D) 局部变量不能与全局变量同名三、写出下列程序的运行结果。
..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,以下不正确...的输入形式是( )。
哈尔滨工业大学(威海)2007/2008学年秋季学期C 语言程序设计 笔试试题(A 卷)题号 一 二三四五六笔试(70%)综合 (30%)总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。
一、单项选择题。
请把答案填入下面框中,不允许出框线。
(本题16分,每小题2分)题号 1 2 3 4 5 6 7 8 答案1. 以下选项中合法的C 语言用户标识符是( )。
A) long B) _2Test C) 3Dmax D) A.dat2. 有以下程序main() {int a=0, b=0, c=0, d=0; if(a=2) b=2; c=4; else d=3;printf("%d,%d,%d,%d\n",a,b,c,d);号学名姓注意行为规范 遵守考试纪}则程序输出( )。
A) 0,1,2,0 B) 0,0,0,3C) 1,1,2,0 D) 编译有错3.用语句scanf(“%c%c%c”,&c1,&c2,&c3);输入”a,b,c”时,变量c1、教研室主任签字:c2、c3的值分别为( )。
A) ‘a′,′b′,′c′B) ′a′,′b′,′′C) ′a′,′,′,′b′ D) ′a′,′′,′c′4.有以下程序段main( ){int k=0;while(k=1) k++;}则while循环执行的次数是( )。
A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次5.有以下程序:#include <stdio.h>#include <string.h>main(){char *p=”abc\101\0fghijk\0”;printf(“%d”,strlen(p));}执行后的输出结果为( )。
大学C语言期末考试练习题(带详解答案)------------------------------------------作者------------------------------------------日期一、单项选择题.( ✌ )是构成 语言程序的基本单位。
✌、函数 、过程 、子程序 、子例程. 语言程序从 开始执行。
✌✆ 程序中第一条可执行语句∙∙∙ ✆ 程序中第一个函数∙∙∙✆ 程序中的❍♋♓⏹函数∙∙∙∙∙∙∙∙∙ ✆ 包含文件中的第一个函数、以下说法中正确的是( )。
✌、 语言程序总是从第一个定义的函数开始执行、在 语言程序中,要调用的函数必须在❍♋♓⏹☎ ✆函数中定义、 语言程序总是从❍♋♓⏹☎ ✆函数开始执行、 语言程序中的❍♋♓⏹☎ ✆函数必须放在程序的开始部分下列关于 语言的说法错误的是( ) 。
✌✆ 程序的工作过程是编辑、编译、连接、运行✆ 语言不区分大小写。
✆ 程序的三种基本结构是顺序、选择、循环✆ 程序从❍♋♓⏹函数开始执行下列正确的标识符是( )。
✌♋ ♋☯♓ ♋♉♓ ♓⏹♦ ♦❞题为相同类型题考点:标识符的命名规则( )只能由字母、数字、下划线构成( )数字不能作为标识符的开头( )关键字不能作为标识符选项✌中的❽❾ ,选项 中❽☯❾与❽❾不满足( );选项 中的♓⏹♦为关键字,不满足( ).下列 语言用户标识符中合法的是( )。
✌✆♋⌧ ✆⌧ ✆♍♋♦♏ ✆♏ ☜✆◆⏹♓☐⏹选项✌中的标识符以数字开头不满足( );选项 ,☜均为为关键字,不满足( );选项 中的❽❾不满足( );.下列四组选项中,正确的 语言标识符是( )。
✌) ⌧ ) ♋♌ )♋ ) ( )、下列四组字符串中都可以用作 语言程序中的标识符的是( ✌ )。
✌、☐❒♓⏹♦ ♉♎ ♎♌ ♋♍ 、✋♋❍ ☐⏹♏♉♒♋●♐ ♦♦♋❒♦♓♦ ☐♋♓、♦♦❒♉ ☐☐ ☐☐♦ ♦♒♓●♏ 、⌧❑ ⍓♌☐☐ ●♓⏹♏✁ ☟♓♦♋♑♏选项 中的❽❾,❾❾ ,选项 中❽❾,❾✁❾,❾❾,❾❾不满足( );选项 中的♦♒♓●♏为关键字,不满足( )语言中的简单数据类型包括( )。
2007-2008C语言程序设计期末试卷第一部分:客观题一、单项选择题(共30题,1分/题,共30分)下列各题A、B、C、D 四个选项中,只有一个选项是正确的,请将正确选项涂在机读卡相应位置上,答在试卷上不得分。
1、C语言源程序构成的基本单位是(B)。
A.文件B.函数C.过程D.主函数2、下列哪个选项是C语言提供的合法保留字(A)。
A.mainB.IntC.cherD.max3、下列常量表示中哪个选项不符合C语言的规定(D)。
A.1LB.0123C.12e-2D. 'ab'4、执行下面程序段后,变量y的数据类型是(B)。
int x;float y=9.6; x=(int)y+ 'a';A.intB.floatC.charD.不确定5、语句a=(a=9,a+10,a*2);运行后,变量a的值是(B)。
A.9B.18C.19D. 386、执行下面程序段后,变量a,b,c的值分别是(D)。
int a,b,c; a=b=0; c=(++a<=0)&&(b=1)A.1,1,1B.1,0,1C.1,1,0D.1,0,07、设有定义int a=2;,执行语句a+=a-=a*=a;后,变量a的值是(A)。
A.0B.4C.8D.-48、设有定义int n=010,i=3;,执行语句n%=i+1;后,变量n的值是(A)。
A.0B.1C.2D.39、设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(B)。
A.k++B.k+=1C.++kD.k+110、执行下面程序段后,变量k的值是(B)。
int k,m=1,n=2;if(m>n) k=m>n;else k=m<=n;A.0B.1C.m<=nD.赋值语句有错,编译不能通过11、若下列选项中的标识符已经定义,则正确的赋值表达式是(C)。
A.x1=25.5%2B.a=b+3+=1C.x=f(x)+3D.f(x)=f(x-1)+f(x-2)12、下面程序段的输出结果是(B)。
北京航空航天大学2007-2008 学年第一学期期末《 C 程序设计》考试A 卷班级______________学号 _________姓名______________成绩 _________2007年12月27日班号学号姓名成绩《 C 程序设计》期末考试卷注意事项:1、此卷为闭卷考试,120分钟完成;2、笔试成绩为卷面成绩*0.7。
题目:一、选择题 (20分)1, 下列运算符中最高优先级的运算符是A) && B) % C) -= D)!2, 对定义语句int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i=5;数组元素地址的正确表示是A)&(a+1) B)a++ C)&p D)&p[i]3, 以下结构定义,请指出不正确赋值语句是struct date{int month;int day;int year;};struct student{int num;char name[20];char sex;struct date birthday;float score;char addr[30];}stu1,stu2;A) stu1.num=10; B) stu1.score+=stu2.score;C) stu1=stu2; D) stu1.birthday.month=12;4,以下程序:#include <stdio.h>void main(){FILE *fp;fp1=fopen(“f1.txt”,”w”);fprintf(fp,”abc”);fclose(fp);}若文本文件f1 .txt中原有内容为good,则运行以下程序后文件f1.txt中的内容为A) abc B)abcd C) goodabc D) abcgood5,以下程序的运行结果是int f(int i){static int n=1;return n=n*i;}int main(){int i;for (i=1;i<5;i++) printf(“%3d”,f(i));printf(“\n”);}A)1 2 3 4 B)1 2 6 24 C)1 2 4 6 D)1 3 6 24二、填空题 (30分)1, 若有定义double x; (5分)(1)使指针p可以指向变量x的定义语句是_________________(2)使指针p指向变量x的赋值语句是________________(3)通过指针p给变量x读入值的scanf函数调用语句是________________(4)通过指针p给变量x赋值语句是___________________(5) 通过指针p输出x的值的语句是____________________2,以下函数用以求x的y次方。
哈尔滨工业大学C语言期末试卷(2007秋季笔试B卷)一、单项选择题:(10分,每题2分)1.在下面的语句中:只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是。
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;2.以下正确的描述是。
A) 对共用体初始化时,只能对第一个成员进行初始化,每一瞬时起作用的成员是最后一次为其赋值的成员B) 结构体可以比较,但不能将结构体类型作为函数返回值类型C) 函数定义可以嵌套D) 关键字typedef用于定义一种新的数据类型3.下列的定义中,正确使用字符串初始化的是。
A)char str[7] = "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'};4.要使下面程序的输出语句在屏幕上显示1,2,34则从键盘上输入的正确数据格式为:。
main(){char a,b;int c;scanf("%c%c%d", &a,&b,&c);printf("%c,%c,%d\n",a,b,c);}A)1 2 34 B)1,2,34 C)'1''2'34 D)12 345.若有二维数组定义语句:int a[3][4]; 则下面对元素a[i][j]不正确的引用方式是:。
A) *(&a[i][j]) B) *(a+4*i+j)C) *(a[i]+j) D) *(*(a+i)+j)二、写出下列程序的运行结果。
(10分,每题2分)1.#include <stdio.h>main(){int k=4, n=0;for (;n<k;){n++;if (n%2 == 0) break;k--;}printf("k=%d, n=%d\n",k,n);}程序运行结果为2.#include <stdio.h>main(){int n;static char *mName[]={"Illegal month", "January","February","March","April","May", "June", "July","August", "September","October", "November","December"};printf("\nPlease enter a integer:");scanf("%d",&n);printf("%s\n",(n<1||n>12)? mName[0] : mName[n]);}当程序输入9时,完整的(包括输入)程序运行结果是:当程序输入13时,完整的(包括输入)程序运行结果是:3.#include <stdio.h>typedef struct date{int year;int month;int day;}DATE;void func(DATE *p){p->year = 2000;p->month = 5;p->day = 22;}main(){DATE d;d.year = 1999;d.month = 4;d.day = 23;printf(“%d,%d,%d\n”, d.year, d.month, d.day);func(&d);printf(“%d,%d,%d\n”, d.year, d.month, d.day);}运行结果是:4.#include <stdio.h>main(){int m = 7;printf("%d\n",m/2+1);printf("%d\n",m/2.0+1);printf("%f\n",(float)(m/2+1));printf("%f\n",(float)m/2+1);printf("m=%d\n",m);}运行结果是:5.#include<stdio.h>int Fun(int x){static int y = 1;y += x;return y;}main(){int k;for (k=0; k<3; k++){printf("%d\n", Fun(k));}}运行结果是:三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。
(8分,每空2分)1. 假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。
Grade Histogram1 *****2 **********3 *******...#include <stdio.h>main(){int i, j, grade;int score[40], count[11] = {0};printf("Please enter the response score:\n"); for (i=0; i<40; i++){scanf( );}for (i=0; i<40; i++){;}printf("Grade\tCount\tHistogram\n");for (grade=1; ; grade++){printf("%5d\t", grade);for (j=0; ; j++){printf("%c",'*');}printf("\n");}}2. 不用函数strcat(),编程实现字符串连接函数strcat()的功能,将字符串srcStr连接到字符串dstStr的尾部。
#include <stdio.h>#include <string.h>void MyStrcat(char dstStr[], char srcStr[]);main(){char s[80], t[80];printf("Please enter source string: ");gets(s);printf("Please enter destination string: ");gets(t);MyStrcat(s,t);printf("The concatenate string is: "); puts(s);}void MyStrcat(char dstStr[], char srcStr[]) {int i = 0, j;while (dstStr[i] != '\0'){;}for (j=0; ; j++, i++){;}= '\0';}四、在下面4个程序中,共有16处错误(包括语法错误和逻辑错误),只要找出其中的15处错误并改正之即可,多找不多加分。
(30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。
)1.下面程序用于打印所有的水仙花数。
所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。
例如,153是“水仙花数”,因为153=13+33+53。
#include <stdio.h>main(){int i, j, k, n;printf("result is:");for (n=100; n<1000; n++);{i = n % 100;j = (n - i * 100) % 10;k = n % 10;if (n=i*i*i+j*j*j+k*k*k){printf("%d\t ",n);}}printf("\n");}2.利用泰勒级数sin(x)≈计算sin(x) 的值。
要求最后一项的绝对值小于10-5,并统计出此时累加了多少项。
#include <math.h>#include <stdio.h>main(){int n = 1,count = 1;float x;double sum , term;printf("Input x: ");scanf("%d", &x);sum = x;term = x;do{term = -term*x*x/(n+1)*(n+2);sum = sum + term;n++;count++;}while (fabs(term) <= 1e-5);printf("sin(x) = %f, count = %d\n", sum, count);}3.下面程序的功能是从键盘输入一行字符,统计其中有多少单词。
假设单词之间以空格分开。
已知:判断是否有新单词出现的方法——当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。
#include <stdio.h>main(){char str[20];int i, num;scanf("%s", str);if (str[0] != ' '){num = 1;else{num = 0;}for (i=1; i<20; i++){if (str[i]!=' '|| str[i-1]==' '){num++;}}printf("num=%d\n", num);}4.下面程序用于计算两个正整数的最小公倍数。