c语言期末考试试卷a答案

合集下载

大学C语言期末考试试题(含答案)

大学C语言期末考试试题(含答案)

第一章C语言概述1.1 选择题*1.1一个C程序的执行是从 A 。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。

但是C 语言中存在一个exit(0)函数,它可以使得程序在任何时候、任何位置结束程序的运行。

如果不考虑exit(0)等函数的特殊作用,C则总是在main函数结束。

*1.2以下叙述正确的是 C 。

A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是一个空格,不会对注释中的内容进行语法检查。

因此,如果注释中存在错误,系统是不可能发现的。

另外,C语言的I/O操作均通过函数实现,系统本身未提供相应的语句。

1.3以下叙述不正确的是 D 。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面参考答案:D参考分析:C语言中,注释语句的位置是任意的,当然,它不能破坏标识符的完整性。

C语言只是将一个注释看作是一个空格,因此对注释内的任何错误都不作检查。

1.4 C语言规定:在一个源程序中,main函数的位置 C 。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C*1.5一个C语言程序是由 B 。

A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是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中。

2020年电大本科C语言程序设计A期末考试试题及答案

2020年电大本科C语言程序设计A期末考试试题及答案

2020年电大本科C语言程序设计A期末考试试题及答案2020年电大本科C语言程序设计A期末考试试题及答案| 本科《C语言程序设计A》复习资料一、单选题1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。

A. mainB. MAINC. nameD. function 2.每个C语言程序文件的编译错误分为(B)类。

A. 1B. 2C. 3D. 4 3. 字符串“a+b=12\n“的长度为(B)。

A. 6B. 7C. 8D. 9 4. 在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。

A. forB. whileC. doD. if 5. 在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。

int i=0; do i++; while(i A. 8 B. 9 C. 10 D. 11 6. 将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。

A. strlen()B. strcpy()C. strcat()D. strcmp() 7. 若用数组名作为函数调用的实参,传递给形参的是(A)。

A. 数组的首地址B. 数组中第一个元素的值C. 数组中全部元素的值D. 数组元素的个数8. 假定a为一个整数类型的数组名,整数类型的长度为4,则元素a的地址比a数组的首地址大(C)个字节。

A. 4B. 8C. 16D. 32 9. 假定s被定义为指针类型char *的变量,初始指向的字符串为“Hello world!“,若要使变量p指向s所指向的字符串,则p应定义为(A)。

A. char *p=s;B. char *p=C. char *p;p=*s;D. char *p; p= 10. 从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。

A. gets()B. fgets()C. getc()D. fgetc() 11.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用(D)符号作为分隔符。

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

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语言期末考试题及答案详

c语言期末考试题及答案详一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. defineB. declareC. definetypeD. type答案:B2. 下列哪个是C语言中的合法标识符?A. 123abcB. intC. _123abcD. if答案:C3. 在C语言中,哪个运算符用于计算两个整数的平均值?A. /B. %C. +D. /答案:D4. 下列哪个是C语言中正确的字符串定义?A. char str[] = "Hello, World!";B. char str = "Hello, World!";C. string str = "Hello, World!";D. str "Hello, World!";答案:A5. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. square()C. root()D. power()答案:A6. 下列哪个语句用于在C语言中交换两个变量的值?A. swap(a, b);B. exchange(a, b);C. a = b; b = a;D. a, b = a + b;答案:C7. 在C语言中,哪个关键字用于声明一个函数?A. functionB. defC. funcD. void答案:D8. 下列哪个是C语言中正确的数组初始化方式?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3, 4};D. int arr = {1, 2, 3, 4, 5};答案:B9. 在C语言中,哪个语句用于结束程序的执行?A. break;B. end;C. exit();D. stop;答案:C10. 下列哪个是C语言中正确的条件语句?A. if (x > 0) { ... }B. condition (x > 0) { ... }C. if (x > 0) then { ... }D. if (x > 0) { ... } else { ... }答案:D二、填空题(每空2分,共20分)11. 在C语言中,使用________关键字来定义一个结构体。

c语言程序设计试卷及答案(A)

c语言程序设计试卷及答案(A)

《C语言程序设计》2013至2014 学年度第 1 学期期末(A)卷(考生注意:考试时间为120分钟。

答案须写在答题纸上,并注明题号,考试结束后将试卷连同答题纸一齐交)一、单项选择题(每小题2分,共40分)1.在一个C语言程序中,有并且只能有一个( )函数。

A. main函数B.自定义函数C.外部函数D.内部函数2.一个C语言程序,总是从()函数开始执行。

A. main函数B.自定义函数C.外部函数D.内部函数3.下列标识符中,不能用作变量名的是( )。

A. _1234_B. _1_2C. int_2_D. 2_int_4.下列字符常量不合法的是( )。

A. ‘2’B. ‘\t’C. ‘ab’D. ‘ \n’5.执行以下语句后的输出结果为( )。

int x; float y; y=3.6; x=(int)y+10; printf(“x=%d,y=%f”,x,y);A. x=13.6,y=3.600000B. x=13,y=3.600000C. x=13,y=3D. x=13,y=3.66.以下哪种变量类型在C语言中不存在( )。

A. 整型变量B.实型变量C. 字符串变量D.字符变量7.设m=10,n=4,则赋值运算m%=n+1执行后m的值是( )。

A. 1B. 2C. 3D. 08.下面语句执行后输出结果为( )。

int x=10,y=3,z; printf(“%d\n”,z=(x%y,x/y));}A. 0B.1C. 3D. 49. 下面语句执行后输出结果为( )。

int x=10,y=10,z=10; printf(“%d,%d,%d ”,x++,--y,++z);}A. 10,10,10B. 10,9,11C. 9,10,11D. 11,10,910.以下选项中不是C语句的是( )。

A. {int i; i++; printf("%d\n", i); }B. ;C. a=5,c=10D. { ; }11.以下程序的输出结果是( )。

大学C语言期末考试练习题(带详解答案)

大学C语言期末考试练习题(带详解答案)

大学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.-a1B.a[i]C.a2_iD.intt5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-”,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3a某B)某C)caeD)-e2E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%某B)a+bC)a123D)123选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\\amone_halftart$it3paiC、tr_1CpppowwhileD、P某qMy->bookline#Hi.age选项B中的“\\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

C语言期末考试试卷及答案

C语言期末考试试卷及答案

C语言期末考试试卷(A)一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( A )A、 C语言简洁、紧凑B、能够编制出功能复杂的程序C、 C语言可以直接对硬件进行操作D、 C语言移植性好2、以下不正确的C语言标识符是( D )A、 ABCB、 abcC、 a_bcD、 ab.c3、一个C语言程序是由( B )A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( A )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( C )A、 intB、 floatC、 doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是( C )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( ) 。

#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、 12345B、 123C、 45D、 3458、若有以下定义int a,b; float x,则正确的赋值语句是( )A、 a=1,b=2B、 b++;C、 a=b=5D、 b=int(x);9、以下程序的执行结果是( )#include<stdio.h>{int i=10,j=10;printf("%d,%d\n",++i,j--);}A、 11,10B、 9,10C、 11,9D、 10,910、巳知字母A的ASCII码是65,以下程序的执行结果是( )#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、 A,YB、 65,65C、 65,90D、 65,8911、下列运算符中优先级最高的是( )A、<B、十C、 %D、 !=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。

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

北京师范大学2021~2021学年第2 学期期末考试试卷〔A卷〕课程名称:程序设计语言〔C语言〕任课教师姓名:于福生刘玉铭卷面总分:100 分考试时长:100 分钟考试类别:闭卷院〔系〕:专业:年级:姓名:学号:阅卷教师〔签字〕:一、判断题〔正确的划√,错误的划×〕〔每题1分,共10分)1.逗号表达式的值是包含于其中的最后一个表达式的值;【】2.函数内的局部变量将屏蔽掉与其重名的全局变量;【】3.全局变量的作用域是所在的整个源程序;【】4.C语言对文本文件和二进制文件均采用“缓冲文件系统〞;【】5.多种类型变量组成的表达式求值时进行类型的自动转换;【】6.二维数组初始化时列规模可以省略不写;【】7.数组名作函数参数,实参数组和形参数组大小可不同,但类型须相同【】8.continue语句和break语句都可以用于改变switch语句的执行流程【】9.static型局部变量的作用域和全局变量的作用域一样;【】10.C语言的所有函数之间可以相互调用【】二、单项选择题(20×2=40分)1.可作为变量名的字符序列是【】A) static B) INTC) #ptr_1t D) 1232.假设a、b为int类型,值分别为3,4,那么对a+=a/=2,b*=b-=2求值后,a、b的值分别是【】A) 4, 4 B) 2, 8C) 2, 4 D) 4, 83.设int b, a; float c;c=(float)a+b; 那么(float)的作用是【】A) 使变量a的类型发生改变B) 使变量a,b的类型发生改变C) 使变量a的值的类型发生改变D) 使变量a,b的值的类型发生改变4.如果有说明:int a[6],*p=a;不能读入a[1]的语句是【】A〕scanf(“%d〞,++a); B〕scanf(“%d〞,a+1);C〕scanf(“%d〞,++p); D〕scanf(“%d〞,p+1);5.程序段int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);的输出结果是【】A) a=2,b=1 B) a=1,b=1C) a=1,b=0 D) a=2,b=26.对于函数int sub(float x, int y){return(x>y?x+y:x-y);},语句printf(“%d〞,sub(3.5, 3));的执行结果是【】A〕6.5C〕6 D〕77.char a[]=〞abcd〞;printf(“%d,%d〞,sizeof(a),strlen(a));的运行结果是【】A) 4,4 B) 5,5C) 4,5 D) 5,48.下面陈述正确的选项是【】A〕全局变量的作用域是所在的整个源程序B〕任何两个函数之间可以相互调用C〕逻辑表达式的求值采用局部求值规那么D〕对某变量实施强制类型转换运算后,变量的类型随之发生变化9.程序段int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12},*p=&a[1][1], (*q)[4]=&a[1];printf("%d,%d",*(p+3),*(*(q+1)+1));的输出结果是【】A) 8, 6 B) 8, 10C) 9, 6 D) 9, 1010.设a为int型变量,那么执行语句:a=-1; a++&&a++&&a++;后,a的值【】A) -1 B) 0C) 1 D) 211.有说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 那么数值为5的表达式是【】A) *p+5 B) *(p+4)C) *p+=5 D) p+412.程序段int k = -2; do k++; while (!(k = 0)); 中while循环执行的次数是【】A〕无限次B〕2C〕0D〕113.从键盘读入含空格的字符串时,应该使用函数【】A) scanf( ) B) gets( )C) getchar( ) D) getch( )14.设有说明int a=1,b=2; 定义函数void swap(int *p, int *q);那么通过函数调用语句swap(&a,&b);能把变量a,b的值交换过来的函数体是【】A〕{int *x; x=p;p=q;q=x;} B〕{int x; x=*p;*p=*q;*q=x;}C〕{int x=*p,y=*q,z=x;x=y;y=z;} D〕{int *x; *x=*p;*p=*q;*q=x;}15.判断字符串s是否大于字符串t应使用【】A〕if〔s>t〕B〕if〔strcmp〔s,t〕>0〕C〕if (strcmp (t,s) >0 ) D〕if (strcmp (s,t) )16.程序int sub〔int a[10]〕{ return sizeof(a);} void main() { int a[10];printf(“%d,%d〞sizeof(a),sub(a));}的运行结果是【】A) 20,20B) 2,2C) 20,2 D) 2,2017. 对于函数⎪⎩⎪⎨⎧<-=>=010001x x x y ,以下程序段中不能对y 正确求值的是【 】A 〕 if (x > 0) y = 1; else if (x == 0) y = 0; else y =-1;B 〕 y = 0; if (x > 0) y = 1; else if (x < 0) y = -1;C 〕 y = 0; if (x >= 0); if (x > 0) y = 1; else y = -1;D 〕 f (x >= 0) if (x > 0) y = 1; else y = 0; else y = -1;18. 假设有以下定义和说明:struct std { char num[6]; char name[8]; float mark[4]; }a[30]; FILE *fp;不能将数组a 写入二进制文件fp 的语句是【 】 A 〕 f or(i = 0; i < 30; i++) fwrite(&a[i], sizeof(struct std), 1, fp); B 〕 f or(i = 0; i < 30; i++) fwrite(a + i, sizeof(struct std ), 1, fp); C 〕 f write(a, sizeof(struct std), 30, fp); D 〕 f or(i = 0; i < 30; i++) fwrite(a[i], sizeof(struct std ), 1, fp);19. 设有说明:struct AA{ int *a,b} *s ;正确调用函数scanf 的实在参数为【 】A) 〔“%d 〞, &*s.a 〕 B) 〔“%d 〞, *s.a 〕 C) 〔“%d 〞, &s->a 〕 D) 〔“%d 〞, s->a)20. int a=12; 语句fprintf(f,“%6d 〞, a);和fwrite(&a,sizeof(a),1,g);导致文件f 和g 在大小上的增加量分别【 】 A 〕2字节,2字节 B 〕6字节,6字节 C 〕6字节,2字节 D 〕2字节,6字节三、阅读程序、写出程序的执行结果(任选5题,5×4=20分)1.#include<stdio.h>void main(){char a[ ]="language", b[ ]="123";char *p=a ,*q=b;while(*p++=*q++) p++;puts(a);}2.#include <stdio.h>int sub( int n ){int a;if( n == 1) return 0;a = n + sub( n-1 );return( a );}void main( ){int n = 6;printf("%d",sub(n));}3.#include<stdio.h>void swap(int *p1, int p2){int temp;temp=*p1;*p1=p2;p2=temp;}void main( ){int x=20, y=15;if( x>y) swap(&x, y);printf("%d,%d", x,y);}4.#include<stdio.h>void main(){int a[3][4]={{3,2,2,3},{4,5,6,4},{-2,9,2,-2}};int i, j, s=1;for ( i=0; i<3; i++ )for( j=0; j<4; j++ )if(i == 3-j) s*=a[i][j];printf("s=%d",s);}5.#include<stdio.h>void main(){int i=13, s=0, t;while(t=i--){if(!(t%3))continue;s+=t;}printf("%d",s);}6.# include <stdio.h>int sub(int m){static int s=1;if(m==1) return(1);return(m*sub(m/++s));}void main(){printf("%d",sub(6));}四、 编程题(任选两题2×15=30分)1. 编程计算:ns n 1)1(....4131211--+-+-=,直到最后一项的绝对值小于。

#include <stdio.h>void main() {float t, s; int n, f;n=1, s=0, f=1; do{t = 1.0/n; s += f*t;f *= -1; n++;}while(t > 0.001); printf("%f\n", s); }2.二进制文件“data.old〞中有假设干整数,编程对这些整数从小到大排序,排序结果存储到二进制文件“data.new〞中。

相关文档
最新文档