厦门理工学院2011年C语言期末考试试卷与答案

合集下载

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

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

c语言大期末考试题库及详解答案1. 选择题(1) 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A(2) 以下哪个选项是正确的C语言变量声明?A. int a = 10, b = 20;B. int a = 10; b = 20;C. int a = 10; int b = 20;D. int a = 10, b = 20;答案:A2. 填空题(1) 在C语言中,用于定义一个函数的关键字是____。

答案:void(2) 当使用指针变量时,用于获取指针所指向的值的运算符是____。

答案:*3. 简答题(1) 简述C语言中数组和指针的关系。

答案:在C语言中,数组名可以作为指向数组首元素的指针使用。

数组的每个元素可以通过指针偏移量来访问。

(2) 解释C语言中的预处理指令#include的作用。

答案: #include预处理指令用于在编译前将指定的文件包含到当前文件中,通常用于包含标准库或自定义的头文件。

4. 编程题(1) 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```(2) 编写一个C语言函数,实现字符串的反转。

```cvoid reverseString(char* str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```5. 论述题(1) 论述C语言中指针的重要性及其应用场景。

c语言期末考试试题及答案解析

c语言期末考试试题及答案解析

c语言期末考试试题及答案解析1. 选择题1.1 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A1.2 在C语言中,以下哪个运算符用于计算两个整数的差值?A. +B. -C. *D. /答案:B1.3 以下哪个选项不是C语言中的控制语句?A. ifB. forC. whileD. switch答案:D2. 填空题2.1 定义一个整型变量,可以使用关键字 ________。

答案:int2.2 在C语言中,数组的索引从 ________ 开始。

答案:02.3 以下代码段中,函数 ________ 用于将字符串 s1 复制到 s2。

```cchar *s1 = "Hello";char s2[20];strcpy(s2, s1);```答案:strcpy3. 简答题3.1 解释C语言中指针的概念。

答案:指针是一个变量,它的值是另一个变量的内存地址。

通过指针,程序可以间接访问和操作内存中的数据。

3.2 描述C语言中函数原型的作用。

答案:函数原型用于声明函数的类型、返回值类型、函数名和参数列表,但不包括函数体。

它允许编译器在函数定义之前检查函数调用时的参数类型和数量。

4. 编程题4.1 编写一个C语言程序,计算并输出1到100之间所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```答案解析:此程序使用一个for循环遍历1到100的整数,通过if 语句检查每个数是否为偶数(即i % 2 == 0),如果是,则将其加到变量sum中。

c语言期末试题及答案及详解

c语言期末试题及答案及详解

c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是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};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。

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

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

c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。

答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。

整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。

每种数据类型都有其特定的取值范围和占用内存大小。

2. 请解释C语言中的数组和指针的区别。

答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。

指针是一个变量,它存储另一个变量的内存地址。

数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。

二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。

答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。

答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。

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

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

(C) scanf("%s",a);
37。 函数调用“strcat(strcpy(str1,str2),str3)” 的功能是( )。
c 语言期末考试试题及答案(word 版可编辑修改)
(A)将字符串 str1 复制到字符串 str2 后再连接到字符串 str3 之后 (B)将字符串 str1 连接到字符串 str2 后再复制到字符串 str3 之后 (C)将字符串 str2 复制到字符串 str1 后再将字符串 str3 连接到 str1 之后 (D)将字符串 str2 连接到字符串 str1 后再将 str1 复制到字符串 str3 中
39. C 语言中,以下叙述中错误的是( )。 A) 主函数中定义的变量是全局变量 B) 同一程序中,全局变量和局部变量可以同名 C) 全局变量的作用域从定义处开始到本源程序文件结束 D) 局部变量的作用域被限定在其所定义的局部范围中
40。 C 语言中,函数调用时若实参是数组名,则被调函数对应形参( ). A) 可以是相应类型简单变量 B) 必须是相应类型数组名 C) 可以是相应类型数组名 D) 必须是相应类型的指针变量
32。 有如下程序 main( ) { int x=1,a=0,b=0; switch(x){ case 0: b++; case 1: a++; case 2: a++;b++; }
c 语言期末考试试题及答案(word 版可编辑修改)
printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是 ( ) A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2
7。 在下列选项中,不的赋值语句是( )。

厦门理工学院c语言程序设计期末试题ABC(含答案) 考试卷子

厦门理工学院c语言程序设计期末试题ABC(含答案)  考试卷子

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. 若有说明:char *language[]={”FORTRAN”,”BASIC”,”PASCAL”,”JAVA”,”C”};则表达式*language[1]>*language[2]比较的是()。

c语言考题及答案(可编辑修改word版)

c语言考题及答案(可编辑修改word版)

2011-2012 第二学期C 语言期末试卷一、选择题:(每小题1分,共20分)1、一个C程序的执行是从( A )。

A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、以下选项中,( D )是不正确的 C 语言字符型常量。

A. 'a'B. '\x41'C. '\101'D. "a"5、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。

x=(i=4,j=16,k=32)A. 4B. 16C.32D.526、在以下一组运算符中,优先级最低的运算符是( D )。

A. *B. !=C. +D. =7、了避免嵌套的if-else语句的二义性,C语言规定else总是与( C )组成配对关系。

A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前尚未配对的最近的ifD. 同一行上的if8、为表示关系x≥y≥z,应使用C语言表达式( A )A. (x>=y)&&(y>=z)B. (x>=y)AND(y>=z)C. (x>=y>=z)D. (x>=y) || (y>=z)9、若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是( D )A.read(a,b,c)B.scanf(“%d%d%d”,a,b,c);C.scnaf(“%D%D%D”,&a,&b,&C);D.scanf(“%d%d%d”, &a,&b,&c);10、执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是( C )A.1 2B.1 2C.1,2D.1211、main(){ int i = 10, j = 1;printf("%d,%d\n",i- -, ++j);}执行后输出结果是( B )A. 9,2B. 10,2C. 9,1D. 10,112、C语言中while和do-while循环的主要区别是( A )A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句13、下面有关for循环的正确描述是( D )A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来14、以下正确的描述是( B )A.continue语句的作用是结束整个循环的执行B.只能在循环体内和switch语句体内使用break语句C.在循环体内使用break语句或continue语句的作用相同D.从多层循环嵌套中退出时,只能使用goto语句15、以下对C语言函数的有关描述中,正确的是( A )。

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

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

} ;++x } ;++x ;eunitnoc )2%j(fi { )++j;3=<j;0=j(rof ;++x { )++i;2<i;0=i(rof ;0=x,j,i tni { )(niam >h.oidts< edulcni # �是果结行运的序程面下�61 } ;)d,"n\d%"(ftnirp ;++a=+d ;)a(nuf ;3=a nti { )(niam } ;)d,"d%"(ftnirp ;++p=+d ;5=d tni { )p tni( nuf ; l1=d tni 44)D 59)C 99)B 48)A 是果结出输,后行运序程下以�51 } ;)a,"n\d%"(ftnirp ;m&==1p=a ;m&=2p*,k&=1p*,6=m,4=k,a tni { )(niam 值定无 a,错出时行运)D 0)C 1)B 4)A 是值的 a 后行执序程下以�41 } ;))b+a(S,"n/fl.4%"( ftnirp ;2=b,1=a tni { )(niam x*x*tp )x(s enifid # 5.5 TP enifed # edulcni # 0.54�D 0.22�C 5.9 �B 5.94 �A 是果结出输,后行运序程下以�31 ;)2v,1v,"n\d%,d%"(ftnirp }
;)]cgra[vgra,"s%"(ftnirp )0>cgra--(elihw { ))][vgra* rahc ,cgra tni (niam HGFEDCBALKJI )D LKJIHGFEDCBA )C LHJI )B GFEDCBA )A 为果结出输则�>车回<LKJI HGFEDCBA GORP �入键下符示提 SOD 的录目在 所件文行执可此在果如�EXE.GORP 件文行执可成生后接连和译编经序程下以定假 �02 EGAUGNAl c )D EGAUGNAL C )C egaugnal c )B egaugnaL C )A �是果结行运的序程面上 } ;)c,”c%“(ftnirp fidne # ;23+c=c )’Z’=<c&&’A’=>c(fi esle # ;23-c=c )’z’=<c&&’a’=>c(fi RETTEL fi # ;++i { ’0\’=!)]i[rts=c((elihW ;0=i ;i tni ;c,”egaugnaL C”=]02[rts rahc { )(niam 0 RETTEL enifed # �序程读请�91 0)D 3)C 2)B 1 )A 为值的 n,后)d>c=n(&&)b>a=m(:式达表行执则 ;2=n,2=m,4=d,3=c,2=b,1=a tni :义定下如有设�81 } ;)p*,"n\d%"(ftnirp ;)a,p&( tuf l))tni(foezis(collam)* tni(=p ;p*,}11,9,7,5,3,1{=]3[]2[a tni { )(niam };]1[]1[p=s** { )]3[]2[p tni,s** tni( tuf 11)D 9)C 7 )B 1 )A 是果结出输,后行运序程下以�71 21=x)D 6=x)C 8=x)B 4=x )A } ;)x,”n\d%=x“(ftnirp

厦门理工学院 c语言数据结构 级数据结构期末试卷_A

厦门理工学院 c语言数据结构 级数据结构期末试卷_A


专业 系 装
10
级 班级


第 3 页 共 7 页
三、程序填空题(本题共 5 空,每空 2 分, 共 10 分)
链式表表示和实现线性表的部分程序如下,请在 程序空白处填上适当的语句: //线性表的单链表存储结构 typedef struct LNode{ ElemType data; struct LNode *next; } LNode, *LinkList; } 中
①p->next(2 分) ②malloc(2 分) ③data(2 分) ④s->next = p->next(2 分) ⑤p->next = s(2 分) ②
a
7
(2 分)
b
WPL = 7*3 + 5*3 + 4*2 + 2*1 = 46
(2 分)
四、算法设计题(本题共 1 小题,每题 14 分,共 14 分)
(10) 循环队列用数组 V[0..m-1]存放其元素值,已知其头、尾指针分别是 f 和 r,则当前队列中的元素 个数是( A ) A. (r-f+m)%m B. (r-f+1) C. (r-f+m+1)%m D. (r-f+m-1)%m (11) 单循环链表表示的队列长度为 n,若只设头指针,则进队的时间复杂度为( A. O(n) B. O(1) C. O(n2) D. O(nlogn) )
学号 栏 线
图 1
姓名
图 2
(3) 算术表达式如下:a*(b+c)-d。 ① 用二叉树表示算术表达式 ② 写出后序(后缀)表达式


(4) 请写出无向图图 2 中顶点 a-f 的度。 (5) 给定元素序列: (50,25,80,20,76,93) ,画出按照该序列构造的二叉 排序树(必须画出二叉排序树的建树过程)。 (6) 下面的邻接表表示一个给定的无向图 ① 请根据邻接表画出无向图 ② 给出从顶点 v1 开始, 根据邻接表对图用深度优先搜索法进行遍历时的顶 点序列; ③ 给出从顶点 v1 开始, 根据邻接表对图用广度优先搜索法进行遍历时的顶 点序列。

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

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

c语言期末考试试题及答案一、选择题1. C语言中用于表示逻辑“与”操作的关键字是()。

A. &&B. ||C. &D. and答案:A2. 若有定义:int a = 5; int b = 10; 则表达式 a * b / 3 的值是()。

A. 15B. 17C. 20D. 25答案:D3. 下列哪个函数用于计算字符串的长度?A. strlen()B. strcmp()C. strcpy()D. strrev()答案:A4. C语言中,文件的打开模式“w”表示什么?A. 写入模式,文件不存在则创建,存在则覆盖B. 写入模式,文件不存在则创建,存在则追加内容C. 读取模式,文件不存在则创建,存在则覆盖D. 读取模式,文件不存在则报错,存在则读取内容答案:A5. 以下哪个选项是C语言中的合法整型常量?A. 0x1FB. 01FC. 1.0e2D. 0b11答案:A二、填空题1. 在C语言中,使用关键字________定义一个全局变量。

答案:extern2. 若有定义:int x = 10; 则执行语句 x += x; 后,变量x的值是________。

答案:203. 在C语言中,使用函数________可以将一个字符串复制到另一个字符串中。

答案:strcpy4. 一个C语言程序的执行是从________函数开始的。

答案:main三、判断题1. C语言中的数组下标是从0开始计数的。

()答案:正确2. 在C语言中,可以定义一个空指针,其值为0。

()答案:正确3. C语言允许在函数定义中再定义另一个函数。

()答案:错误四、简答题1. 请简述C语言中的指针和引用的主要区别。

答案:指针是一个变量,其存储的是另一个变量的地址;而引用是另一个变量的别名,它必须在定义时就被初始化,并且不能被重新指向其他变量。

指针可以直接被修改以指向不同的地址,而引用则始终指向初次定义时的变量。

2. 解释C语言中的预处理器指令#if、#else和#endif的作用。

厦门理工学院C语言程序设计期末测试题及答案(5套)

厦门理工学院C语言程序设计期末测试题及答案(5套)

if(c>=’a’&&c<=’z’)
c=c-32;
# else
if(c>=’A’&&c<=’Z’)
c=c+32;
# endif
printf(“%c”,c);
}
上面程序的运行结果是:
A) C Language
B) c language
C) C LANGUAGE D) c lANGUAGE
20. 假定以下程序经编译和连接后生成可执行文件 PROG.EXE,如果在此可执行文件所 在目录的 DOS 提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 A) ABCDEFG B) IJHL C) ABCDEFGHIJKL D) IJKLABCDEFGH main( int argc, char *argv[])) { while(--argc>0) printf("%s",argv[argc]);
D)switch (a+b);
{ case 1:printf("\n");
{ case 1:printf(."*\n");
case 1+2:printf("**\n");
case 2:printf("**\n");
}
}
11.以下程序运行后,如果从键盘上输入 ABCDE,则输出结果为
A) 8 B)7 C)6 D)5
A)k=3 a=2 b=3 B)k=3 a=3 b=2 C)k=2 a=3 b=2 D)k=2 a=2 b=3
9.下面程序的输出是
main()
{ unsigned a=32768;

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

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语言程序的执行从_______函数开始。

2011年《C语言程序设计》期末考试A卷答案

2011年《C语言程序设计》期末考试A卷答案

华中科技大学文华学院2010~2011学年度第二学期《C语言程序设计》参考答案、评分标准专业:全院使用范围:本\专科考试时间:2011年7月2日卷型:A卷考试方式:闭卷课程性质:必修一、选择题(每小题2分,共20分)1~5: C D C B C6~10: A B D A D二、把下列数学式子写成C语言表达式(每小题2分,共10分)1. sqrt(s*(s-a)*(s-b)*(s-c))2. 2*sqrt(x)+(a+b)/(3*sin(x))3. exp(x)-log(x)/log(2)4. 2*3.14*r+3.14*r*r+cos(3.14/180*45)5. fabs(-pow(x,5))三、阅读程序,写出运行后的输出结果(每题4分,共20分)1. 结果:62. 结果:***3. 结果:2,14. 结果:00005. 结果:64四、编程题(每小题10分,共40分)1.#include <stdio.h>void main(){int year;scanf("%d",&year);if(year%400==0||(year%4==0&&year%100!=0))printf("%d is a leap year\n",year);elseprintf("%d is not a leap year\n",year);}2. #include <stdio.h>void main(){int m=0,n=0;char c;while((c=getchar())!='\n'){if(c>'A'&&c<='Z')m++;if(c>='a'&&c<='z')n++;}printf("m=%d,n=%d,max=%d\n",m,n,m<n?n:m); }3.#include <stdio.h>void main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int i,n,m,x;n=0,m=9;scanf("%d",&x);while(n<=m){i=(n+m)/2;if(a[i]==x)break;if(a[i]<x)n=i+1;if(a[i]>x)m=i-1;}if(a[i]!=x)printf("No found");elseprintf("%d,%d\n",i,a[i]);}4.#include <stdio.h>void strcat1(char p[], char q[]){int i=0,j=0;while(p[i]!='\0')i++;while(q[j]!='\0'){p[i]=q[j];i++,j++;}p[i]='\0';}void main(void){char a[20],b[10];printf("请输入两个字符串:\n");gets(a);gets(b);strcat1(a,b);printf("\n连接后的字符串为:%s\n",a);}五、填空(每空2分,共10分。

厦门理工-数据结构c语言版期末考试复习试题

厦门理工-数据结构c语言版期末考试复习试题

厦门理工《数据结构与算法》复习题一、选择题。

1.在数据结构中,从逻辑上可以把数据结构分为 C 。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.数据结构在计算机内存中的表示是指 A 。

A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。

A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

A.数据的处理方法B.数据元素的类型C.数据元素之间的关系D.数据的存储方法5.在决定选取何种存储结构时,一般不考虑 A 。

A.各结点的值如何B.结点个数的多少C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。

6.以下说法正确的是 D 。

A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。

(1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性(2)A.空间复杂度和时间复杂度B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性8.下面程序段的时间复杂度是O(n2) 。

s =0;for( I =0; i<n; i++)for(j=0;j<n;j++)s +=B[i][j];sum = s ;9.下面程序段的时间复杂度是O(n*m) 。

for( i =0; i<n; i++)for(j=0;j<m;j++)A[i][j] =0;10.下面程序段的时间复杂度是O(log3n) 。

i =0;while(i<=n)i = i * 3;11.在以下的叙述中,正确的是 B 。

A.线性表的顺序存储结构优于链表存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。

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

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

c语言期末考试考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,不正确的是()。

A. C语言是一种高级编程语言B. C语言具有结构化的特点C. C语言可以直接在操作系统上运行D. C语言具有跨平台的特性答案:C2. 在C语言中,用于定义整型变量的关键字是()。

A. intB. floatC. charD. double答案:A3. 下列选项中,不是C语言中的运算符的是()。

A. %B. &&C. /D. #答案:D4. C语言中,用于定义一个函数的关键字是()。

A. functionB. defC. voidD. int答案:C5. 在C语言中,以下哪个选项是正确的字符串定义方式?()A. char str[10] = "Hello";B. char str[] = "Hello";C. char str[10] = 'Hello';D. char str = "Hello";答案:B6. 下列关于C语言数组的描述中,正确的是()。

A. 数组可以存储不同类型的数据B. 数组的索引从0开始C. 数组的大小在定义后可以改变D. 数组可以存储字符串答案:B7. 在C语言中,用于输入输出的库函数是()。

A. math.hB. stdio.hC. string.hD. time.h答案:B8. 下列关于C语言指针的描述中,不正确的是()。

A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以存储字符串D. 指针不能直接存储字符串答案:D9. 在C语言中,用于定义一个结构体的关键字是()。

A. structB. unionC. enumD. typedef答案:A10. 下列关于C语言文件操作的描述中,不正确的是()。

A. 文件操作需要包含stdio.h头文件B. 文件指针用于指向文件的当前位置C. 文件操作使用fopen函数打开文件D. 文件操作使用fclose函数关闭文件答案:A二、填空题(每题3分,共30分)1. C语言中,用于定义一个常量的关键字是____。

厦门理工学院试卷-C语言程序设计-2011-2012学年-第1学期

厦门理工学院试卷-C语言程序设计-2011-2012学年-第1学期

,请填空。

线 订 装高级语言程序设计A卷答案二、程序填空题:(本题共10小题,每空2分,共20分)1. int t2. a=b3. 14. (2.0*i)* (2.0*i) 注明:一定要用一个2.0,否则扣1分5. i++6. N-17. i+18. a[i]<a[j]9. 10. b.score[i]三、程序阅读题(本题共5小题,每题4分,共20分)1、192、163、64、BOC5、10 20 30四、设计题:(本题共3小题,每题10分,共30分)1、#include<stdio.h> // 1分void main() // 1分{int x,y; //1分printf("please input x"); //1分scanf("%d",&x); //1分if(x>0) //2分y=x*x+2*x+1;if(x= =0) //1分y= -7;if(x<0) //2分y=3*x-5;printf("\ny is %d",y);}2、#include <stdio.h>#define N 1000void main( ){int i,j,num[N]; //1分for(i=0;i<N;i++) // 2分num[i]=i+1;num[0]=0; //1分for(i=1;i<N;i++)if(num[i]!=0) //1分for(j=i+1;j<N;j++){ if(num[j]!=0 &&num[j]%num[i]==0) //2分num[j]=0;}j=0;for(i=1;i<N;i++) //1分if(num[i]!=0) //1分{ printf("%d ",num[i]);j++;if(j%5==0) printf("\n"); //1分}}3、#include <stdio.h>int reverse(int);//1分,若函数先定义后调用,直接加1分void main( ){int num;printf("\n请输入您的数据:\n");scanf("%d",&num); //1分printf("\n该数的逆序数为:%d\n",reverse(num)); //函数调用和结果输出2分}int reverse(int number) //1分{ int n=0;while (number > 0) //1分{n=n*10+number%10; //2分number /= 10; //1分}return (n); //1分}。

厦门理工学院c语言复习题,答案仅供参考

厦门理工学院c语言复习题,答案仅供参考

C程序设计期末复习思考题一、选择题:1 一个C语言程序是由______B___。

A)一个主程序和若干个程序组成B)函数组成C)若干过程组成D)若干子程序组成2已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是______D____。

A)a+=a-=(b=4)*(a=3) B) a=a*3=2C) x%(-3) D) y=float(i)3以下不正确的语句为___B_______。

A) if (x > y); B) if (x = = y) && (x != 0) x + = y;C) if (x < y) { x ++; y++;} D) if (x != y) scanf(“ %d ”,&x);else scanf(“ %d ”,&y);)4C语言中while 和do —whiloe循环的主要区别是_____A______。

A)do —while 的循环体至少无条件执行一次B)while 的循环控制条件比do—while 的循环控制条件严格C)do —while 允许从外部转到循环体内D)do —while 的循环体不能是复合语句5 下面程序应该是_____D___ (程序行左边的数字表示行号)1main( ) 5 for( i=0;i<3;i++) scanf( “%d”,&a[i]);2{ 6 for(i=1;i<4;i++) a[0] = a[0] + a[i];3int a[3]={0}; 7 printf(“%d\n”, a[0]);4int i; 8 }A)没有错误B)第3 行有错误C)第5 行有错误D)第6 行有错误6 以下程序有语法性错误,有关错误原因的正确说法是____________。

main( ){ int G=5,k;void prt_char( );……k=ptr_char(G);……}A)语句void ptr_char( ); 有错,它是函数调用语句,不能用void 说明B)变量名不能使用大写字母C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线7若有以下定义,则对a数组元素正确引用的是___A_________。

厦门理工学院C语言期末考试

厦门理工学院C语言期末考试

期末复习---C语言尹凤1、#include<stdio.h>Int main(){Int i,j;For(i=1;i<=5;i++){For(j=1;j<=i;j++)Printf("*");For(j=1;i<=(5-i);j++)Printf(" ");Printf("\n");}Return 0;}2、#include<stdio.h>int main(){int i,j;for(i=1;i<=5;i++){for(j=1;j<=2;j++)printf("*");printf("\n");}return 0;}3、#include<stdio.h>int main(){int i,j;for(i=1;i<=5;i++){for(j=1;j<=i;j++)printf(" ");for(j=1;j<=(2*i-1);j++)printf("*");printf("\n");}return 0;}4、#include<stdio.h>int main(){int i,j;for(i=1;i<=5;i++){for(j=1;j<=(5-i);j++)printf(" ");for(j=1;j<=(2*i-1);j++)printf("*");printf("\n");}return 0;}5、#include<stdio.h>void main(){struct PEOPLE{char name[20];int num;float salary;}people[5];int i;for(i=1;i<=5;i++){printf("Input all information about the NO.%d people:\n",i);gets(people[i].name);scanf("%d,%f",&people[i].num,&people[i].salary);getchar();}printf("\n%-20s%-10s%-10s%\n","Name","Nu m","Salary");for(i=1;i<=5;i++)printf("%-20s%-10d%-6.2f\n",people[i].name, people[i].num,people[i].salary);if(people[i].num>=30)people[i].salary=people[i].salary+100;printf("%-20s%-10d%-6.2f\n",people[i].name, people[i].num,people[i].salary);}6、#include<stdio.h>#define N 8int main(){float score[N]={3,4,5,7,8,6,4,5},max,min,sum=0; int i;for(i=0;i<N;i++){if(score[i]<max) max=score[i];if(score[i]>min) min=score[i];sum=sum+score[i];}sum=(sum-max-min)/(N-2); printf("%.2f",sum);return 0;}/*不知道错在哪里?*/7、#include<stdio.h>void main(){char grade;grade='B';switch(grade){case 'A':printf("excellent"); case 'B':printf("pass\n");case 'C':printf("failure");}8、#include<stdio.h>int main(){float score[11],sum=0;/**用一个数组score来储存11位评委的得分**/int i,max,min;printf("\nEnter 11 score:");for(i=0;i<11;i++)scanf("%f",&score[i]);max=min=score[0];/******把第一个得分作为最高分与最低分*****/for(i=0;i<11;i++){if(score[i]>max) max=score[i];else if(score[i]<min) min=score[i];/*需要将最高份和最低分表示出来*/sum=sum+score[i];}/*计算总分用循环结构来计算*/ sum=(sum-max-min)/(11-2);printf("\nFinal score is %6.2f",sum); return 0;}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。




专业 系 装

06
级 班级

第 1 页 共 9 页
4、有程序片段 int a=2,b=1; if(a<b) a=3; b=3; 以下选项中正确的是: 【4】 。 A、 a=2 b=1 B、 a=2 b=3 C、 a=3 b=3 D、 a=3 b=1 5、语句 if (i ) i++; 中的条件表达式 i 等价于【5】 。 A、 i==0 C、 i!=0 B、 i!=1 D、 -i
一、单项选择题
题号 答案 题号 答案 1 B 11 C 2 D 12 A 3 C 13 D 4 B 14 B 5 C 15 C 题号 答案 题号 答案 6 D 16 D 7 D 17 B 8 A 18 A 9 B 19 A 10 C 20 C
二、程序填空题
NO. 1 答 (1)sum=0 (2)return sum (3)sum(m) ; 2 (4)x=-x (5)y<0(或者 y<=0) 4 案 NO. 3 答 (6)struct stu (7)stu[i].score (8)1 (9)e (10)result=result*b 案
厦门理工学院期末考试卷
20-20 学年 第 1 学期 课程名称
C 语言程序设计
专业 级 班级
试卷 卷别
A B
闭卷



考试 方式
学号
开卷 □
本试卷共 三 大题( 8 页),满分 100 分,考试时间 120 分钟。 请在答题纸上作答,在试卷上作答无效。

1、有程序片段 int a=7,b=5,c,d; c=a/b; d=a%b; 以下选项中正确的是: 【1】 。 A、 c=1.4 d=1 B、 c=1 d=2 C、 c=2 d=1 D、 c=1 d=1.4 2、若有程序段: int a = 5; int *p = &a; /* 行 1 */ *p = a; /* 行 2 */ 对行 1 和行 2 的正确解释是【2】 。 A、 行 1 和行 2 中的*p 含义相同,都表示给指针变量赋值。 B、 行 1 和行 2 执行的结果都是把变量 a 的地址赋给指针变量 p。 C、 行 1 是在对 p 进行说明的同时进行初始化,使 p 指向 a; 行 2 是将变量 a 的值赋给指针变量 p; D、 行 1 是在对 p 进行说明的同时进行初始化,使 p 指向 a; 行 2 是将变量 a 的值赋给指针变量 p 所指的变量; 3、结构化程序设计的 3 种基本结构是【3】。 A、 顺序结构、选择结构、转移结构 C、 顺序结构、选择结构、循环结构 B、 分支结构、等价结构、循环结构 D、 多分支结构、赋值结构、等价结构
学号 栏 息 姓名 专业 系 06 级 班级 考 生 信


线
第 7 页 共 9 页
四、设计题: (本题共 3 小题,每题 10 分,共 30 分)
1.有一个分段函数如下
x 3 1 y 4x
x0 x0
写一段程序,输入 x,输出 y。 2.编程实现计算 1!+2!+„+10!的值。 3. 写一个程序求 3*3 矩阵二维数组上三角元素和 数组如下:1 2 3 4 5 6 7 8 9 上三角元素和为 1+2+3+4+5+7=22,要求必须使用循环.
三、程序阅读题 1、12 2、6566456
3、0
三、设计题
第 8 页 共 9 页
1.解:
#include<stdio.h> void main() { int x,y; printf("please input x"); scanf("%d",&x); if(x>=0)
2.解:
1分 1分 1分 1分 1分 2分
6、C 语言中规定,if 语句的嵌套结构中,else 总是与【6】配对。 A、 与最近的 if 配套 B、 与第一个 if 配套 C、 按缩进位置相同的 if 配套 D、 与最近的且尚未配对的 if 配套 7、有程序片段 int i=1,n=1; for(;i<3;i++); { continue; n=n+i; } 程序运行后变量 n 的值为【7】 : A、 4 B、 3 C、 2 D、 1 8、有程序片段 int k=0; while(k=1) k++; 则 while 循环执行的次数是【8】 。 A、 无限次 B、 有语法错误,不能执行 C、 一次也不执行 D、 执行一次 9、已知:int a[2][3]; 则对数组元素的非法引用是【9】 。 A、 B、 C、 D、 a[0][2*1] a[1][3] a[4-3][0] a[1][2]

栏 姓名
x=22 x=23

13、若已定义:int *p, a ; ,则语句 p=&a ; 中的运算符&的含义是【13】 。 A、 按位与运算 B、 逻辑与运算 C、 取指针内容 D、 取变量地址 14、如果在用户的程序中要使用 C 库函数中的数学函数时,应在该源文件中使用 的 include 命令是【14】 。 A、 #include <string.h> C、 #include <stdio.h> 15、有程序片段 int a=1,b=2; a=a+b;b=a-b;a=a-b; printf(“%d,%d\n”,a,b); 以下选项中正确的是: 【15】 。 A、 1,1 B、 1,2 C、 2,1 D、 2,2 16、以下对二维数组 c 的声明正确的是【16】 。 A、 int c[3][ ]; C、 int c(2)(2); B、 int c(3,4); D、 int c[3][2]; B、 #include <math.h> D、 #include <ctype.h>
第 2 页 共 9 页
10、运行下面程序段时,编译提示第 2 行出错,其原因是【10】 。 void main( ) { char c1 = 'a' , c2 = '123' ; printf(" %c , %d\n " , c1 , c2 ) ; } A、 字符常量要写成 "a" 。 B、 '123'只能赋值给字符串。 C、 字符常量'123'长度太大。 D、 字符变量 c1,c2,不能在同一行中定义。
D、 30
第 4 页 共 9 页
二、程序填空题:
1. #include<stdio.h> unsigned sum(unsigned n) { unsigned i, _____(1)______ for(i=1;i<=n;i++) sum+=i; ______(2)______ } void main() { int m; clrscr(); printf("Please input a unsigned integer:"); scanf("%d",&m); while(m<0) { printf("Please input a unsigned integer:"); scanf("%d",&m); } printf("\nThe sum is %d\n", ______(3)_____ getch(); } 2.以下程序用来求两整数的绝对值和。请填空。 #include<stdio.h> void main() { int x,y; printf("Please input x,y:"); scanf("%d%d",&x,&y); if (x<0) (4) ; if ( (5) ) y=-y; printf("\n|x|+|y|=%d\n",x+y); }
学号
11、程序运行输出了错误的结果,可以排除下列哪一个因素【11】 。 A、 算法错误 C、 未通过编译 B、 运行时输入数据错误 D、 系统资源配置不当
线
12、有程序片段 int x=23; printf(“%d”,- -x); 以下说法中正确的是【12】 。 A、 输出 22 x=22 B、 输出 23 C、 输出 22 x=23 D、 输出 23
学号 栏 息 姓名 信

线

专业
06
级 班级
);



第 5 页 共 9 页
3.计算三个学生的总成绩和平均成绩,其中三个学生的成绩存储在一个结构体中。 #include <stdio.h> main() { struct stu { char name[10]; float score; }; _____(6)_____ stu[3]={"Mary",76,"John",85,"Tom",81}; int i=0; float total=0,aver=0; while(i<3) { total=total+ _______(7)_______ ; i++; } aver=total/3; printf("\ntotal=%.2f,aver=%.2f", total,aver); getch(); } 4.以下函数的功能是返回 b 的 e 次幂。例如,intPow(2,3)的值为 2*2*2。假定 e 是非 0 整数, b 是整数,请填空。 #include <stdio.h> int intPow(int b,int e) { int result,n; result= (8) ; /* 为 result 赋初值 */ for(n=0; n<___(9)_____; n++) (10) ; return result; } main() { printf(“2 的 3 次幂是:%d”,intPow(2,3)); }
相关文档
最新文档