C语言程序设计期末考试选择题题库

合集下载

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

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

c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。

答案:int7. C语言中,用于输入输出的库函数分别是______和______。

答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。

答案:int*9. C语言中,用于定义函数的关键字是______。

答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。

答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。

答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。

结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。

答案:递归函数是一种函数自己调用自己的特殊函数。

递归函数通常用于解决可以被分解为相似子问题的问题。

递归函数需要有一个明确的终止条件,以防止无限递归。

四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。

答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。

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

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

C语言程序设计期末考试试题含答案第一部分:选择题(每题5分,共40分)1. 下列选项中,不是C语言基本数据类型的是:A. intB. floatC. doubleD. string答案:D2. 在C语言中,for循环和while循环的区别是:A. for循环适用于已知循环次数,while循环适用于未知循环次数B. for循环必须有循环条件,while循环可以没有循环条件C. for循环只能用于数字计算,while循环可以用于任意类型的循环D. for循环和while循环没有区别答案:A3. 下列哪个选项是合法的变量名:A. 123varB. _varD. %var答案:B4. 在C语言中,使用printf函数输出一个整数变量的值,应该使用下列哪个占位符:A. %fB. %cC. %dD. %s答案:C5. 下列代码中,输出的结果是什么:```cint a = 5;printf("%d\n", a++);printf("%d", a);```A. 6 5B. 6 6C. 5 6答案:A6. 下列哪个选项中的函数可以用来比较两个字符串是否相等:A. strcmpB. strcatC. strlenD. strcpy答案:A7. 当我们在编写C语言程序时,通常会将一些常用的函数或者代码片段写成一个个独立的文件,这些文件通常以什么扩展名来保存:A. .cB. .hC. .txtD. .exe答案:B8. 下列代码中,缺少的语句是什么:```cint a = 10;int b = 20;int c = a + b;```A. return c;B. printf("%d", c);C. break;D. continue答案:B第二部分:编程题(每题30分,共60分)题目1:编写一个C程序,实现求取一个整数数组中元素的平均值。

要求通过函数实现,函数原型为:float average(int arr[], int length),其中arr为整数数组的首地址,length为数组的长度。

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

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

c语言期末考试题库及详解答案选择题一、单项选择题1. C语言中,以下哪个选项是正确的标识符?A. 2variableB. variable2C. 3numberD. number3答案:B解析:在C语言中,标识符可以包含字母、数字和下划线,但不能以数字开头,因此选项B是正确的标识符。

2. 在C语言中,以下哪个选项不是基本数据类型?A. intB. floatC. doubleD. string答案:D解析:C语言的基本数据类型包括整型(int)、浮点型(float和double)等,而string并不是C语言的基本数据类型,而是在C++中引入的。

3. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D解析:C语言中的逻辑运算符包括逻辑与(&&)、逻辑或(||)和逻辑非(!)。

4. C语言中,以下哪个选项是正确的一维数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:A解析:在C语言中,声明一维数组时,需要指定数组的大小,因此选项A是正确的声明方式。

5. C语言中,以下哪个选项是正确的函数声明?A. int function(int a);B. int function();C. int function(int a) { return a; }D. int function a(int b) { return a + b; }答案:A解析:在C语言中,函数声明需要指定返回类型和参数列表,因此选项A是正确的函数声明方式。

6. 在C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello", "World!"D. "Hello" 'World!'答案:A解析:在C语言中,字符串字面量使用双引号括起来,因此选项A是正确的字符串字面量。

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

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

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

C语言程序设计期末考试试题(含答案)C语言程序设计期末考试试题(含答案)一、选择题(共20题,每题2分,共40分)在每个题目给出的选项中选出一个正确答案,并将其序号填入题前括号内。

1. 下列关于C语言标准库的说法,错误的是:A. C语言标准库提供了多个头文件,如<stdio.h>、<stdlib.h>等。

B. C语言标准库中包含了很多有用的函数和变量。

C. C语言标准库的函数和变量的声明保存在头文件中。

D. C语言标准库中的函数和变量可以直接使用,无需任何声明和定义。

2. 下面哪个选项是正确的整型常量表示法?A. 3.14B. 'A'C. 3.0E8D. 0xFC3. 下面代码中,输出结果是多少?```c#include <stdio.h>int main() {int x = 3, y = 4, z;z = (x++) + (++y);printf("%d\n", z);return 0;}```A. 7B. 8C. 9D. 104. 下面哪个选项是正确的声明一个指向整型数据的指针?A. int *ptr;B. int ptr;C. *int ptr;D. ptr *int;5. 下面哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int a, b);C. add(int a, int b);D. add(int a, b);(略去其他题目...)二、编程题(共2题,每题30分,共60分)请编写符合题目要求的程序。

1. 题目描述:编写一个程序,实现求解1至100之间的所有偶数的和,并打印输出结果。

以下是程序的运行示例:```1至100之间的所有偶数的和为2550。

```2. 题目描述:编写一个程序,实现将用户输入的英文句子的每个单词首字母变为大写,并打印输出结果。

以下是程序的运行示例:```请输入一个英文句子:hello world!转换后的句子为:Hello World!```三、简答题(共2题,每题10分,共20分)请简要回答以下问题。

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

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

c语言期末考试题库及详解答案选择题在C语言期末考试中,选择题是常见的题型之一,它考查学生对C语言基础知识点的掌握程度。

以下是一些典型的C语言选择题及其详解答案,供同学们参考:1. 下列哪个是合法的C语言常量?A. 0.123E-2B. .123C. 0x12AB34D. 0L答案:C。

解析:C语言中的常量可以是整型常量、浮点型常量、字符常量等。

选项A中缺少整数部分,选项B中没有整数部分或指数部分,选项D中的'L'是长整型后缀,但前面没有数字,因此选项C是合法的十六进制常量。

2. 以下哪个语句不能通过编译?A. int a = 5;B. int b = 0x12;C. int c = 0755;D. int d = 1.23e0;答案:C。

解析:选项C中的0755是一个八进制常量,但是八进制常量不能以数字5开始,因此选项C是错误的。

3. 以下哪个是正确的C语言数组声明?A. int arr[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int arr[5] = {0, 1, 2, 3, 4, 5};D. int arr[10];答案:B。

解析:选项A中数组的大小是10,但初始化列表中只有9个元素,这是不正确的。

选项C中初始化列表有6个元素,但数组的大小是5,这会导致编译错误。

选项D没有初始化列表,但数组的大小是10,这是合法的。

选项B是正确的,因为它允许数组的大小由初始化列表中的元素数量决定。

4. 下列哪个是正确的C语言函数声明?A. void myFunction();B. int myFunction(int a, int b);C. double myFunction(double);D. void myFunction(int);答案:B。

解析:选项A中没有参数,但函数名后没有括号,这是不正确的。

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

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

期末c语言考试题库及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是合法的C语言变量名?A. 2nd_variableB. _variableC. variable-nameD. variable$name答案:C3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. ==D. =答案:A5. C语言中,以下哪个关键字用于定义一个函数?A. classB. functionC. intD. void答案:C6. 在C语言中,以下哪个选项表示“不等于”?A. ==B. !=C. =D. <=答案:B7. 下列哪个选项是C语言中的循环结构?A. ifB. forC. switchD. case答案:B8. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyC. strcatD. strcmp答案:A9. C语言中,以下哪个关键字用于定义一个指针?A. *B. &C. %D. #答案:A10. 下列哪个选项是C语言中的数组?A. int a[10];B. int *a;C. int a=10;D. int a;答案:A二、填空题(每题2分,共10分)1. 在C语言中,用于定义一个字符常量的数据类型是______。

答案:char2. 在C语言中,用于定义一个整型变量的数据类型是______。

答案:int3. 在C语言中,用于定义一个浮点型变量的数据类型是______。

答案:float4. 在C语言中,用于定义一个双精度浮点型变量的数据类型是______。

答案:double5. 在C语言中,用于定义一个布尔型变量的数据类型是______。

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语言程序设计期末考试卷及答案

C语言程序设计期末考试卷及答案考试时间:3小时满分:100分一、选择题(每题2分,共20分)1. 下列哪个不是C语言的关键字?A. intB. floatC. doubleD. printf答案:D2. 在C语言中,用于判断两个数是否相等的运算符是:A. >B. <C. ==D. >=答案:C3. 下面哪个选项是正确的函数声明方式?A. void sum(int a, b);B. int multiply(int x, int y);C. add(int a, int b);D. double divide(int a, int b);答案:B4. 下面哪个函数原型声明是错误的?A. void calculate(int a, int b);B. int calc(int x);C. int comp(float x, float y);D. double calculate(int x, int y);答案:D5. 在C语言中,用于循环执行某段代码的关键字是:A. ifB. elseC. switchD. while答案:D6. 下面哪个选项是正确的数组声明方式?A. int[5] numbers;B. numbers[5] int;C. int numbers[5];D. array = int[5];答案:C7. 在C语言中,用于读取用户输入的函数是:A. puts()B. scanf()C. print()D. read()答案:B8. 下列哪个运算符用于访问结构体成员?A. .B. ,C. :D. ;答案:A9. 在C语言中,用于定义常量的关键字是:A. defineB. constantC. constD. variable答案:C10. 下面哪个选项是正确的条件语句?A. if (x > 10) { printf("x大于10"); }B. if x > 10 { printf("x大于10"); }C. if x > 10 printf("x大于10");D. if x > 10 then printf("x大于10");答案:A二、编程题(共80分)题目一:请编写一个C语言程序,要求从键盘上输入一个整数n,然后计算并输出1到n之间所有整数的和。

C语言程序设计期末考试卷及问题详解

C语言程序设计期末考试卷及问题详解

文案大全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. stringD. array答案:A2. C语言中,下列哪个运算符用于比较两个值是否相等?A. ==B. =C. !=D. %答案:A3. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoi()B. atof()C. itoa()D. sprintf()答案:B4. 下列哪个选项是正确的C语言变量声明?A. int num = 10;B. int num = "10";C. int num = '10';D. int num = 10.0;答案:A5. C语言中,以下哪个语句用于循环执行代码块?A. forB. whileC. ifD. switch答案:A6. 在C语言中,以下哪个函数用于计算数组中元素的总和?A. sum()B. count()C. average()D. max()答案:A7. 下列哪个选项是C语言中正确的注释格式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释 */D. /* 这是注释答案:A8. 在C语言中,如何定义一个指向整数的指针?A. int *p;B. int *p = 0;C. int *p = 10;D. int p = 10;答案:A9. 在C语言中,以下哪个选项是正确的函数定义?A. int function() {}B. int function() { return 0; }C. int function() { return; }D. int function() { return 1; }答案:B10. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, WorldD. 'Hello, World'答案:A二、填空题(每题3分,共15分)1. 在C语言中,使用________运算符可以交换两个变量的值。

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语言程序设计期末考试试题及其答案一、单项选择题(本大题共20题,每题2 分,共40分)1、以下不是C语言的特点的是( B)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个特性的描述中错误的是(B )A、有零个或多个输入B、有零个或多个输出C、有穷性D、可行性5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为(C )A、intB、floatC、doubleD、不确定6、在C语言中,char型数据在内存中的存储形式是(D )A、补码B、反码C、源码D、ASCII码7、有如下程序,输入数据:12345M678<cR>后(<CR>表示回车),x的值是( B) 。

#include<stdio.h>main(){int x;float y;scanf("%3d%f",&x,&y);}A、12345B、123C、45D、3458、若有以下定义int a,b; float x,则正确的赋值语句是(B )A、a=1,b=2B、b++;C、a=b=5D、b=int(x);9、以下程序的执行结果是( A)#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,以下程序的执行结果是( D)#include<stdio.h>main(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A、A,YB、65,65C、65,90D、65,8911、下列运算符中优先级最高的是( C)A、<B、十C、%D、!=12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为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语言程序设计期末考试试题及参考答案

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

一、单项选择题(每题1分,共20分)(1)()是构成C语言程序的基本单位。

A)子例程B)过程C)子程序D)函数(2)下面标识符中正确的是()。

A) d&ef B) 6a C) z4x5c D) a3/b4(3)C语言规定,函数返回值的类型是由()。

A) return语句中的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定(4)以下选项中非法的表达式是()。

A) 0<=x<100 B) x+l=x+l C) (char)(65+3) D) i=j=0(5)表达式3.6-5/2+1.2+5%2 的值是()。

A) 3.8 B) 4.8 C) 3.3 D) 4.3(6)设int a=12,则执行完语句a+=a-=a*a后,a的值是()。

A) 552 B) -264 C) 144 D) 264(7)对if语句中表达式的类型,下面正确的描述是()。

A)必须是关系表达式B)必须是关系表达式或逻辑表达式C)必须是关系表达式或算术表达式D)可以是任意表达式⑻设有定义:intnl=0,n2,*p=&n2,*q=&nl;,以下赋值语句中与n2=nl;语句等价的是.A) *p=*q; B) p=q; C) *p=&nl; D) p=*q;(9)有以下程序#include <stdio.h>void main()( char cl,c2;cl='A'+'8'*4';c2='A'+'8'-'5‘;printf("%c,%d\n”,cl,c2); }已知字母A的ASCII码为65,程序运行后的输出结果是()。

A) E,D B) D,69 C) E,68 D)输出无定值(10)下列叙述中正确的是()。

A) break语句只能用于switch语句B)在switch语句中必须使用defaultC) break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(11)设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是()。

C语言程序设计期末考试题库

C语言程序设计期末考试题库

C语言程序设计期末考试题库C语言程序设计期末考试题库一单项选择题1完成C源文件编辑后到生成执行文件C语言处理系统必须执行的步骤依次为A连接编译 B 连接运行C 编译运行D 编译连接2下列说法正确的是A一个c语言程序并非总是从主函数位置开始执行的B一个c语言程序有且只有一个主函数C函数可以嵌套定义不可以嵌套调用D程序函数的位置不可以任意3下面是合法C语言标识符的是A 2A_KB _MNC –M3D AC_24下列格式符中可以用于控制字符输出的是A dB fC oD c5设xyz和k都是int型变量则执行表达式x y 4z 16k 30 后x的值是A 4B 16C 30D 506执行语句for i 1s 0i 5i s i后变量si的当前值是A 105B 156C 155D 1067若有定义int xp则以下正确的赋值表达式是A p xB p xC p xD p x8以下对结构体类型变量的定义中不正确的是A typedef struct aaB define AA struct aa int n AA int nfloat m float mAA studAA studC structD structint n int nfloat m float maa studstruct aa stud9有如下函数调用语句func rec1rec2rec3 rec4rec5函数调用语句中含有的实参个数是A 3B 4C 5D 以上均不是10对于以下宏定义define SQ x xxdefine xy SQ x - SQ y宏调用 2323 执行后值为A25 B11C43 D以上均不是11完成C源文件编辑后到生成执行文件C语言处理系统必须执行的步骤依次为A连接编译 B 连接运行C 编译运行D 编译连接12下列说法正确的是A一个c语言程序并非总是从主函数位置开始执行的B一个c语言程序有且只有一个主函数C函数可以嵌套定义不可以嵌套调用D程序函数的位置不可以任意13下面是合法C语言标识符的是A 2A_KB _MNC –M3D AC_214下列格式符中可以用于控制字符输出的是A dB fC oD c15设xyz和k都是int型变量则执行表达式x y 4z 16k 30 后x的值是 A 4 B 16C 30D 5016执行语句for i 1s 0i 5i s i后变量si的当前值是A 105B 156C 155D 10617若有定义int xp则以下正确的赋值表达式是A p xB p xC p xD p x18以下对结构体类型变量的定义中不正确的是A typedef struct aaB define AA struct aaint n AA int nfloat m float mAA studAA studC structD structint n int nfloat m float maa studstruct aa stud19有如下函数调用语句func rec1rec2rec3 rec4rec5函数调用语句中含有的实参个数是A 3B 4C 5D 以上均不是20对于以下宏定义define SQ x xxdefine xy SQ x - SQ y宏调用 2323 执行后值为A25 B11C43 D以上均不是21.有如下程序的输出结果是mainint y 3x 3z 1Printf d d\n xy z2A 3 4B 4 2C 4 3D 3 322.下列说法不正确的是A 主函数main中定义的变量在整个文件或程序中有效B 不同函数中可以使用相同名字的变量C 形式参数是局部变量D 在一个函数内部可以在复合语句中定义变量这些变量只在本复合语句中有效23.算术表达式 xa3 int xy 24的值为其中x 35a 7y 47A 2500000B 3500000C 3000000D 450000024.设有如下定义int a 1b 2c 3d 4m 2n 3则执行表达式m a b常数的书写格式决定了常数的类型和值0x1011是A8进制整型常量 B字符常量C16进制整型常数 D2进制整型常数执行下列程序后 a值为int a ba 15b 12a a--b a5 a5A 0B 28C 4D 2A 地址传递B 单向的值传递C 由实参传给形参再由形参传给实参D 传递方式由用户指定34.有如下程序段int pab 1p ap 10a pb执行该程序段后a的值为A 12B 11C 10D 编译出错35.已知char和int类型分别占1和2个字节则sizeof yy 的返回值应为 unionchar a1int a2int a3yyA 2B 4C 5D 定义有错j为int型变量下列for循环语句的执行结果是for j 10j 3j--if j3 j----j --jprintf djA 6 3B 7 4C 6 2D 7 4 137宏定义"#define p xyz x yz"的宏替换"p ax5y-31 "应为A a x5y-31B a x5 y-31C a x5y-31D a x5 y-31 下列各语句定义了数组其中一个不正确的是A static int a[5]b[2][3]B char no[30]rec[306]C int x 246810D int x[10] 12345 hello Ca int i Di j40一个C程序由若干个C函数组成各个函数在文件中的书写位置为A 任意B 第一个函数必须是主函数其他函数任意C 必须完全按调用顺序排列D 其他函数必须在前主函数必须在最后41 以下选项中合法的字符常量是 B B \010C 68D D42若有以下定义则表达式的值为3的是int k 7x 12A x k 5B x k-k5C x k-k5D x k - x 543若已定义x和y为double类型则表达式x 1y x32的值是A 1B 2C 20D 2544判断字符变量c的值为数字0---9则返回1否则返回0可用表达式 A 0 c 9 B 0 cc 9C 0 cc 9D 9 c 045有如下程序该程序的执行结果是mainint n 9while n 6n-- printf dnA 987B 876C 8765D 987646若有以下的定义及语句则对数组元素正确引用的表达式是int a[5][4]int p [4] aA p1B p3C p1 2D p3 2 47有如下函数调用f 1234 的返回值为int f char sint k 0while sk k10s-0return kA 1234B 1234C 4321D 432148对于以下程序段运行后i的值为enum WEEK 1234567enum WEEK a 1int i 0switch acase 1 i 2case 2 i 3default i 4A 2B 0C 3D 4 49执行下列程序后变量i的值应为define TA xy x yint i 3i TA ii1 2A15 B 10 C12 D 14 50 变量a所占内存字节数是union Uchar st[4]int ilong lstruct Aint cunion U uaA 4B 5C 6D 851下列字符串不是标识符的是sum B Average C Day_night D MDJOHN52 在C语言中回车换行符是\ n B \ t C \ v D \ b53 在C语言中语句和数据定义是用作为结束标记的A.句号 B.逗号 C分号 D.括号54设有如下定义int x 10y 5z则语句printf d\nz x yxy的输出结果是A.0 B.1 C3 D.455以下程序的输出结果是mainchar c1 a c2 Aprintf ccdd\n c1 c2c1c2A.因输出格式不合法输出出错信息B.aA9765 C6597Aa D.aAaA56 完成C源文件编辑后经过编译连接生成文件扩展名为的可执行文件A cB exeC objD txt57下列运算符优先级最高的是A B C D58一个C程序的执行是从A.本程序中的main函数开始到main函数结束B.本程序中的第一个函数开始到本程序中的最后一个函数结束C本程序中的main函数开始到本程序中的最后一个函数结束D.本程序中的第一个函数开始到本程序中的main函数结束59以下叙述中正确的是A 构成C程序的基本单位是函数B 可以在一个函数中定义另一个函数C main 函数必须放在其它函数之前D 所有被调用的函数一定要在调用之前进行定义60设a和b均为double型常量且a 50b 20则表达式 int ab 的值是A 25 B 2000000 C 2500000 D 261取模运算符不能用于哪一种类型的运算AX 103 BX 63 CX 10241 DX 62831412下列对变量的定义哪个正确A int x int yB char s1s2C float ab Dchar if63字符串HELLO的长度是多少在内存中占用多少单元数A长度为6占6个单元 B 长度为6占7个单元C长度为7占7个单元 D 长度为7占6个单元64下列错误的赋值语句是AX Y 1 BX 34 CX F-A DX 2I65如果a 5b 6那么a b a5 b-3 和a ba b的值各是多少A00 B01 C10 D11以下是C语言提供的合法数据类型关键字A Float BChAR C Intger D unsigned以下选项中合法的字符常量是A B B \010 C 68 D D设正xy均为整型变量且x 10y 3则以下语句的输出结果是printf dd\nx----yA 102B 93C 92D 103下列字符串不是标识符的是YEAR B Average C stUDENT D 7_num66 以下选项中合法的字符常量是 B B \010C 68D D67若有以下定义则表达式的值为3的是int k 7x 12A x k 5B x k-k5C x k-k5D x k - x 568若已定义x和y为double类型则表达式x 1y x32的值是A 1B 2C 20D 2569判断字符变量c的值为数字0---9则返回1否则返回0可用表达式A 0 c 9B 0 cc 9C 0 cc 9D 9 c 070有如下程序该程序的执行结果是mainint n 9while n 6n-- printf dnA 987B 876C 8765D 987671若有以下的定义及语句则对数组元素正确引用的表达式是 int a[5][4]int p [4] aA p1B p3C p1 2D p3 272有如下函数调用f 1234 的返回值为int f char sint k 0while sk k10s-0return kA 1234B 1234C 4321D 432173对于以下程序段运行后i的值为enum WEEK 1234567enum WEEK a 1int i 0switch acase 1 i 2case 2 i 3default i 4A 2B 0C 3D 4 74执行下列程序后变量i的值应为define TA xy x yint i 3i TA ii1 2A15 B 10 C12 D 14 75 变量a所占内存字节数是union Uchar st[4]int ilong lstruct Aint cunion U uaA 4B 5C 6D 876以下程序的输出结果是mainint a 3printf d\n a a- aaA –6B 12C 0D –1277下列说法错误的是A一个c语言程序总是从主函数位置开始执行的B一个c语言程序有且只有一个主函数C函数可以嵌套定义不可以嵌套调用D程序函数的位置可以任意在C语言中语句和数据定义是用作为结束标记的A.分号 B.逗号 C句号 D.括号语句x y2与下列语句结果一样A x xy2B x 2xyC x x y2D x y2x下列各语句中能够且仅输出整型变量ab中最大值的是A if a b printf 〃d\n〃a printf 〃d\n〃bB printf 〃d\n〃b if a b printf 〃d\n〃aC if a b printf 〃d\n〃a else printf 〃d\n〃bD if a b printf 〃d\n〃a printf 〃d\n〃b以下程序的输出结果是mainint x 4y 2zprintf d\nz x- yxyA.0 B.1 C2 D.3以下不能正确定义二维数组的选项是Aint a[2][2] 1 2Bint a[2][] 12 34 56Cint a[2][2] 1 23 Dint a[][2] 1234 判断字符变量c的值为数字 09 则返回1否则返回0 可用表达式A 0 c c 9B 0 c 9C 0 c c 9D 以上均不是设j为int型变量下列for循环语句的执行结果是for j 7j 3j--if j3 j----j --jprintf djA 4B 4 0C 死循环D 4 1已知char和int类型分别占1和2个字节则sizeof yy 的返回值应为unionchar a1int a2int a3yyA 2B 4C 5D 定义有错以下程序的运行结果是define MIN xy x y x ymainint i 10j 13k k 10MIN ijprintf d\nkA 10B 130C 100D 1387 下列字符序列中不合法的C语言标识符的是A.abc123 B.no1 C._123_ D._ok88 以下说法中正确的是A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中要调用的函数必须在main 函数中定义C.C语言程序总是从main 函数开始执行D.C语言程序中的main 函数必须放在程序的开始部分89 设以下变量均为int类型则值不等于7的表达式是A. m n 6 mn m1B. m n 6 mn n1C. m 6 m1 n 6 mnD. m 6 m1 n m n190 当调用函数时实参是一个数组名则向函数传送的是 A 数组的长度 B 数组的首地址C 数组每一个元素的地址D 数组每个元素中的值A i 2sum 1 Bi 9sum 9 C i 10sum 9 D运行出现错误92 设xy和z都是int类型变量且x 3y 4z 5则下面的表达式中值为0的表达式是A.x y x yC.xyz y-z D. x y z1mainint n 4while n- -printf ″d″- -nA20 B31 C321 D21094 以下对一维整型数组a正确定义的是Aint a 10 B int n 10a[n]Cint n D define SIZE 10scanf "d"n int a[SIZE]int a[n]95 若定义如下变量和数组int iint x[3][3] 123456789则下面语句的输出结果是for i 0i 3i printf "d "x[i][2-i]A 1 5 9B 1 4 7C 3 5 7D 3 6 996 有下列程序输出结果是includemainunionint kchar i[2]sas as- i[0] 0x39s- i[1] 0x38printf "x\n"s- kA 3938B 3839 C380039 D39003897完成C源文件编辑后到生成执行文件C语言处理系统必须执行的步骤依次为A连接编译B编译连接C连接运行D运行98下列说法错误的是A一个c语言程序总是从主函数位置开始执行的B一个c语言程序有且只有一个主函数C函数可以嵌套定义不可以嵌套调用D程序函数的位置可以任意99C语句x y2还可以写作A x xy2B x 2yxC x x y2D x y2x100下列格式符中可以用于控制输出十进制整数的是A dB fC oD c101下列各语句中能够且仅输出整型变量ab中最大值的是A if a b printf 〃d\n〃a printf 〃d\n〃bB printf 〃d\n〃b if a b printf 〃d\n〃aC if a b printf 〃d\n〃a else printf 〃d\n〃bD if a b printf 〃d\n〃a printf 〃d\n〃b102执行语句for i 1i 10i s i后变量si的当前值是A 5511B 5510C 4510D 4511103下列各语句定义了数组其中一个不正确的是A int a〔5〕b〔2〕〔3〕B char no〔30〕rec〔〕C int x〔〕 246810D int x〔10〕 12345104下列算法的特性其中哪一个是不正确的A 有穷性B 有一个或多个输入C 不确定性D 可执行性105执行语句for i 0i 10ia scanf 〃d〃a 试图为int类型数组a〔10〕输入数据是错误的错误的原因是A变量不能做自增运算B数组首地址不可改变Ci应写作i Da应写作a106定义函数时缺省函数的类型声明则函数类型取缺省类型A voidB charC floatD int二填空题1设int a 5 c 32float b 25表达式bca的值为___ ___2若x和a均是int型变量则计算x a 462 后x的值是 __3设a 3b 4c 5则ab cb c的值为 ___4有如下程序段int k 10while k 0 k k-1则循环体语句执行___ 次5int i 0s 0while i n s i等价于 int isfor ______________________6将p说明为字符数组指针数组大小为10应写为______________7对于 int pqi 5j 6 执行p iq pp j输出结果 p _______ q ________8设有以下变量定义并已赋确定的值则表达式wxz-y所求得的数据类型为____ _ char w int x float y double z9当a=5b=4c=2时表达式a b c的值为____ __10 用for循环打印 1 4 7 10 13 16 19 22 25 其语句应for i 1 i 9 i printf 3d11执行语句a 5 c 6 后变量ac的值依次为___ _12若有定义int a[3][4] 12 0 46810 则a[1][2]的值为a[2][1]的值为_13表达式33的值为_______________isfor ______________________21将p说明为字符数组指针数组大小为10应写为______________22对于 int pqi 5j 6 执行p iq pp j输出结果 p _______ q ________23设xyz和k都是int型变量则执行表达式x y 4z 16k 32 后x的值为____ 24定义字符指针数组a数组大小为10应写为25对于整形变量ij 值分别为12 执行scanfi dj dijC语言中函数值类型的定义可以缺省此时函数值的隐含类型是31一个C源程序至少包括一个即32一个函数由两部分组成它们是和33C语言的数据类型有四大类它们是单精度实型34Break语句只能用于和语句35若x 3y z 4下列各式的结果是什么1 z y 102 z yy x3 x yxy4 x yxy5 xxx36在C语言中函数的隐含存储类型是____ ___37设有以下变量定义并已赋确定的值则表达式wxz-y所求得的数据类型为 char w int x float y double z38当a=5b=4c=2时表达式a b c的值为39若有说明int i j k 则表达式i 10j 20k 30k ij的值为______a 10b 20则表达式a b的值是___ ___用for循环打印 1 4 7 1013 16 19 22 25 其语句应为_ijk均为int变量执行完下面的循环后ijk值为_ __ 注ijk中任意答对一个均得分for i 0j 10i jij-- k ij执行完下列语句段后 i值为___int i 3 jj 10ii j i243若有定义int a[3][4] 12 375 46810 则a[1][2]的值为44若有以下定义和语句则 p 的值为int a[4] 1245 pp a[1]45 1≤x 30的C语言表达式是__ ___46 C语言中数组元素的下标下限为 __ ___47 表达式9 0的值为48 一个函数由两部分组成它们是和49 表达式x 2x-1x的值为50 有以下说明定义语句可用aday引用结构体成员day请写出引用结构体成员aday的其它两种形式int daychar mouthint yearabb a51若声明char a〔15〕〃Windows-XP〃执行语句printf 〃s〃a[3] 的输出结果为__ _52 定义如下typedef char INTINT n则变量n的类型为__ ____53设int a 5 c 32float b 25表达式bca的值为___ ___54计算ab中最小值的条件表达式为____ __55计算xy之和的平方根表达式应写作___ ___56执行语句a 5 c 6 后变量ac的值依次为___ _57执行语句n 1if n 5 n"后变量n值为___ ___58执行语句 s 0n 5while --n s n执行后变量sn值依次为____ __59若声明char a〔15〕〃Windows-9x〃执行语句printf 〃c〃a[3] 的输出结果为____ _60程序中使用了输入输出函数如printf 则应当包含的头文件名为____ 61设有以下变量定义并已赋确定的值则表达式wxz-y所求得的数据类型为____ _ char w int x float y double z62当a=5b=4c=2时表达式a b c的值为____ __63 用for循环打印 1 4 7 10 13 16 19 22 25 其语句应for i 1 i 9 i printf 3d64执行语句a 5 c 6 后变量ac的值依次为___ _65若有定义int a[3][4] 12 0 46810 则a[1][2]的值为a[2][1]的值为_66表达式33的值为_______________执行语句"for s 0i 1i 11i if i 6 continues i "后s值为______若声明"char a 〃windows〃b[ ] 〃 9x〃"执行语句"printf 〃s〃strcat ab "的输出结果为_____C语言中能表示a≥10或a≤10的关系表达式是 _ _______72计算ab中最小值的条件表达式为___ ___执行语句"a 5 c 6 "后变量ac的值依次为_____a 10b 20则表达式a b的值是__ ___int变量占两个字节的存储单元若有定义int x[10] 123 则数组x在内存中所占的字节为______ ______77在C语言中函数的隐含存储类型是______ _____78ab都是结构体变量语句"a b"能够执行的条件是___ ___int ijmni 8j 10m in jprintf 〃d d d d〃ijmn输出结果2 #includemainint ifor i 3i 10iif ii20 1 break printf "d "iprintf "\n"输出结果3 #includeint fac int nstatic int f 1f fnreturn fmainint ifor i 2i 5iprintf d d\nifac i输出结果4 #includemainchar s[] ABCDpfor p s1p \0pprintf s\np该程序的输出结果是5 #includeint f char sint k 0while s k k10s-0return kmainint aa f 1234printf a d\na该程序的输出结果是6. includevoid main voidint num 0while num 2num printf d\nnum输出结果7 includevoid main viodint asncounta 2s 0n 1count 1while count 4 n na s sn count printf s d s输出结果8 #includevoid mainint nfor n 1n 10nif n3continueprintf d n输出结果9 includevoid f int yint xy yx x xyvoid main viodint x 2y 4f yxprintf d d\nxy输出结果10 includevoid main voidint i j row col minint a[3][4] 1234 9876 -1-205 min a[0][0]for i 0i 3ifor j 0j4jif a[i][j] minmin a[i][j]row icol jprintf min d row d col d\n min row col输出结果11 #includemainint ijmni 8j 10m in jprintf 〃d d d d〃ijmn输出结果12 #includemainint ifor i 3i 10iif ii20 1 breakprintf "d "iprintf "\n"输出结果13 #includeint fac int nstatic int f 1f fnreturn fmainint ifor i 2i 5iprintf d d\nifac i输出结果14 #includemainchar s[] ABCDpfor p s1p \0pprintf s\np该程序的输出结果是15 #includeint k 0while s k k10s-0 return kmainint aa f 1234printf a d\na该程序的输出结果是16mainint ijmni 8j 10m in jprintf ddddijmn17mainint xx fun 4fun int nint sif n 1 n 2s 2elses nfun n-1return s18mainint a[6]= 471392 iinvert a05for i 0i 6i printf da[i] printf \ninvert int s[ ]int iint jint tif i jt s[i]s[i] s[j]s[j] t ij--19void f int a int bstatic int k 0a kb 2若执行 i 2j 4f ijf ji 后i和j的值为5mainstatic char a[] ABCDEFGHb[] ABCDefgH char p1p2int kp1 ap2 bfor k 0k 7kif p1k p2k printf c p1k20.mainchar s2 I love Chinas1 s2char s3cs4 zs3 cs3 ys2 s27printf s c s c\ns2s3s4s121.有如下程序mainint x 23doprintf dx--while x22.下面程序输出的是char s[ ] ABCDmainchar pfor p sp s4pprintf sp23.以下程序的输出结果是mainint w 5fun wprintf \nfun int kif k 0 fun k-1printf d k24.下面程序输出的是mainint k 4m 1pp f km printf dpp f km printf dpf int a int bstatic int m 0i 2i m1 m iab return m25两次运行下面程序如果从键盘上分别输入6和4则输出结果是mainint xscanf dxif x 5 printf dxelse printf dx--26. includevoid main voidint num 0while num 2num printf d\nnum输出结果27 includevoid main viodint asncounta 2s 0n 1count 1while count 4 n na s sn count printf s d s输出结果28 #includevoid mainint nfor n 1n 10nif n3continueprintf d n输出结果29 includevoid f int yint xy yx x xyvoid main viodint x 2y 4f yxprintf d d\nxy输出结果30 includevoid main voidint i j row col minint a[3][4] 1234 9876 -1-205 min a[0][0]for i 0i 3ifor j 0j4jif a[i][j] minmin a[i][j]row icol jprintf min d row d col d\n min row col输出结果31 若有以下程序mainint k 2i 2mm k i k printf "dd\n"mi执行后的输出结果是32有以下程序#includevoid mainint nfor n 1n 10nif n2 0continueprintf d n程序运行后的输出结果是33有以下程序int f int nif n 1 return 1else return f n-1 1mainint ij 1for i 1i 3i j f iprintf "d\n"j程序运行后的输出结果是34有以下程序mainint aa[4][4] 1234 5678 39102 4296 int is 0for i 0i 4i s aa[i][i]printf "d\n"s程序运行后的输出结果是35有以下程序int fb int xreturn xxxmainint ii fb 2 printf "d\n"i程序运行后的输出结果是36有以下程序main voidint num 0while num 2num printf d\nnum执行后的输出结果是mainint x 5doprintf dx--while x该程序的执行结果是38.运行下面程序如果从键盘上输入5则输出结果是mainint xscanf dxif x 5 printf dxelse printf dx--39运行下面程序includevoid f int yint xy yx x xyvoid main viodint x 1y 2f yxprintf d d\nxy输出结果是40运行下面程序includevoid main voidint i j row col mint a[3][4] 1234 9876 -1-205 m a[0][0]for i 0i 3ifor j 0j 4jif a[i][j] mm a[i][j] row i col j printf m d row d col d\nm row col输出结果是41 include stdiohmainint kscanf d kswitch kcase 1 printf d\n kcase 2 printf d\n kcase 3 printf d\n kcase 4 printf d\n kbreakdefault printf Full\n从键盘输入为3时屏幕上的输出结果是42 int i a[10]for i 9i 0i- - a[i] 10-iprintf "ddd"a[2]a[5]a[8]屏幕上的输出结果是43 includedefine SUB XY X Ymainint a 3 b 4printf "d" SUB a b屏幕上的输出结果是44 int ff int nstatic int f 1f fnreturn fmainint ifor i 1i 5i printf "5d"ff i屏幕上的输出结果是45 include "stdioh"void fun int x int yprintf "d d " x yx 3y 4mainint x 1 y 2fun y xprintf "d d" x y屏幕上的输出结果是46#includevoid mainint ifor i 1i 5i printf 〃dc\n〃iAi输出结果47 #includevoid main int iindex 0int iage[10] 0。

c语言期末考试题库

c语言期末考试题库

c语言期末考试题库一、选择题(共20题,每题2分,共40分)1. C语言中用于表示字符常量的关键字是:A) charB) constC) stringD) printf2. 下列哪个选项是C语言中用于定义常量的方式?A) DEFINE keywordB) CONST keywordC) CONSTANT keywordD) #define3. 表达式 a = b = 5 的含义是:A) 将b的值赋给aB) 将a的值赋给bC) 将5赋给a和bD) 将a和b的值都设为54. 下列哪个选项是C语言中用于定义宏的方式?A) macroB) defineC) structD) declare5. 下列哪个选项是用于判断两个变量是否相等的运算符?A) ==B) =C) !=D) >6. C语言中的逻辑非运算符是:A) &&B) ||C) !D) ?7. 下列哪个选项是C语言中声明函数时用于指定返回类型的关键字?A) intB) returnC) voidD) main8. C语言中,用于将字符转换为整型值的函数是:A) scanB) getsC) tointD) atoi9. 下列关键字中,用于声明条件语句的是:A) whileB) forC) doD) if10. 在C语言中,访问数组中特定元素的方式是使用:A) 索引号B) 地址C) 偏移量D) 指针11. 下列哪个选项是C语言中用于定义结构体的关键字?A) structB) classD) object12. C语言中的逗号运算符的作用是:A) 连接两个数字B) 分隔函数参数C) 用于条件判断D) 控制程序循环13. 下列哪个语句用于从标准输入读取一个字符串?A) scanf("%d", &str);B) gets(str);C) read(str);D) input(str);14. C语言中用于比较两个字符串是否相等的运算符是:A) ==B) =C) !=D) >15. 在C语言中,字符型数据占用的存储空间大小是:B) 2 bytesC) 4 bytesD) 8 bytes16. 下列哪个选项是C语言中用于声明指针变量的运算符?A) *B) &C) $D) %17. C语言中的条件运算符是:A) ? :B) &&C) ||D) !18. 下列哪个选项是C语言中用于定义枚举类型的关键字?A) enumB) typedefC) defineD) struct19. 在C语言中,用于将浮点数取整的函数是:A) absB) ceilC) floorD) round20. 下列哪个选项是C语言中用于声明常量的关键字?A) constB) varC) intD) float二、填空题(共10题,每题4分,共40分)1. 下面是C语言中定义多维数组的示例代码,请填写横线处缺失的部分:int multiArray[2][3] = { {1, 2, 3}, {4, 5, 6} };2. 下面是C语言中的if语句示例代码,请填写横线处缺失的部分:if (num > 0){printf("Number is ____________.\n");}else if (num < 0){printf("Number is ____________.\n");}else{printf("Number is ____________.\n");}3. 下面是C语言中的for循环示例代码,请填写横线处缺失的部分:for (_______; i < 10; i++){printf("i = %d\n", i);}4. 下面是C语言中的do-while循环示例代码,请填写横线处缺失的部分:do{printf("i = %d\n", i);i++;} while (_______);5. 下面是C语言中用于定义结构体的示例代码,请填写横线处缺失的部分:typedef struct{int age;char name[20];float height;} _________;6. 下面是C语言中的switch语句示例代码,请填写横线处缺失的部分:switch (grade){case 'A':printf("Excellent\n");_________;case 'B':printf("Good\n");break;case 'C':printf("Average\n");break;default:printf("Fail\n");}7. 下面是C语言中定义函数的示例代码,请填写横线处缺失的部分:_______ calculateArea(int length, int width){int area = length * width;return area;}8. 下面是C语言中的数组示例代码,请填写横线处缺失的部分:int array[5] = {1, 2, 3, 4, 5};_______;9. 下面是C语言中用于定义宏的示例代码,请填写横线处缺失的部分:#define MAX(a, b) (a > b ? a : b)10. 下面是C语言中用于声明指针的示例代码,请填写横线处缺失的部分:int *ptr = ________;三、编程题(共40分)请编写一个C语言程序,实现以下功能:1. 定义一个结构体类型,包含学号、姓名和成绩三个成员;2. 声明一个结构体变量数组,长度为5;3. 使用for循环,分别从标准输入中读取每一个学生的学号、姓名和成绩,并存储到结构体变量数组中;4. 使用for循环,打印输出结构体变量数组中的每一个学生的信息,包括学号、姓名和成绩。

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

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

大一c程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是:A. 变量名必须以字母开头B. 变量名中可以包含下划线C. 变量名区分大小写D. 变量名可以包含数字答案:D2. C语言中,用于定义字符常量的是:A. 单引号B. 双引号C. 反引号D. 尖括号答案:A3. 下列哪个选项不是C语言中的运算符?A. 赋值运算符B. 关系运算符C. 逻辑运算符D. 条件运算符答案:D4. 在C语言中,用于定义一个整型数组的语句是:A. int array[5];B. int array[];C. int array[5]={0};D. int array[5]={0,1,2,3,4};答案:A5. 下列关于C语言函数的描述,正确的是:A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 所有选项都是正确的答案:D6. C语言中,用于输入输出的库函数是:A. printfB. scanfC. printf和scanfD. 以上都不是答案:C7. 下列关于C语言中指针的描述,错误的是:A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B8. 在C语言中,用于定义结构体的关键字是:A. structB. unionC. enumD. typedef答案:A9. 下列关于C语言中循环的描述,错误的是:A. for循环可以没有初始化部分B. while循环可以嵌套使用C. do-while循环至少执行一次D. 循环体内可以包含break语句答案:A10. C语言中,用于定义枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义整型变量的关键字是____。

答案:int2. 在C语言中,表示逻辑与的运算符是____。

c语言程序设计期末复习题库

c语言程序设计期末复习题库

第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。

A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。

A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。

A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。

A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。

A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。

A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。

A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。

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

第一章1、一个C程序可能出现的错误有(A)A,以上都包括B,逻辑错误C,运行错误D,语法错误2、C程序中一般可以包含几个函数(D)A.1个B.多个C.0个D.至少一个3.C语言属于程序设计语言的哪个类别(B)A.机器语言B.高级语言C.面向对象语言D.汇编语言4.以下关于C语言描述错误的是(B)A.一个C程序总是从main函数开始执行B.一个C程序可以包含多个main函数C.每个语句的最后必须有一个分号D.C语言的注释符是以"/*"开始并以"*/"结束5、在调试过程中,逻辑错误是指(C)A.所书写的语句,不符合C的语法。

B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。

C.程序的运行结果不符合题目要求。

D.在exe文件的执行过程中,产生运行异常。

第二章1、16位的二进制数可以表示的整数的范围是(C)A.[-32768,32768]B.[-32767,32768]C.[-32768,32767]D.[-32767,32767]2、C语言中的实型数据包括(A)A.float和doubleB.int和floatC.float和charD.int和double3、以下不合法的字符常量是(C)A.'2'B.'A'C.'ab'4、在以下各组标识符中,均是合法的C语言标识符是(A)A.abc,A_4d,_student,xyz_abcB.auto,12-a,a_b,ab5.xC.A_4d,_student,xyz_abc,ifD.abc,a_b,union,scan5、若有定义:chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(A)A.charB.floatC.doubleD.int6、类型修饰符unsigned不能修饰(D)A.charB.longintC.intD.float7、若有定义:doublex=1,y;执行语句,则y的值是(B)A,1B,2.0D,2.58、设inta=1,b=2;以下选项中不正确的语句是(B)A.a=a+bB.a*3=3C.a+=3D.a/=19、在C语言中,要求参加运算的数必须是整数的运算符是(C)A.*B./C.%D.++10、设有定义:inta=7;floatx=2.5,y=4.7;则表达式的值是(D)A,3.5B,2.75C,0.0D,2.5第三章1、执行以下程序后k的值是(C)inti,j=10,k=0;for(i=0;i<=j;i++){k=i+j;j--;}A.9B.8C.10D.112、2、设inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为(C)A.3B.1C.2D.03、表示y在(-∞,3]和[23,+∞)范围内为真的表达式为(A)A.(y<=3)||(y>=23)C.(y<3)||(y>23)C.(y<=3)&&(y>=23)D.(y<3)&&(y>23)4、设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是(D)voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s=s+1;}while(a!=n);printf("%d",s);}A.-5B.0C.-1D.-35、对下面程序段,描述正确的是(D)for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%d",x);}A.当x>=0时,什么也不输出B.printf函数永远也不执行C.当x<0时,整个循环结束D.最多允许输出100个非负整数6、已知intx=10,y=20,z=30;则执行以下语句后x、y、z的值是(A)if(x>y)x=y;y=z;A.x=20,y=30,z=30B.x=20,y=30,z=10C.x=20,y=30,z=20D.x=10,y=20,z=307、设有声明语句:inta=1,b=0;则执行以下语句后输出结果为(A)switch(a){case1:switch(b){case0:printf("**0**");break;case1:printf("**1**");break;}case2:printf("**2**");break;}A.**0****2**B.有语法错误C.**0****1****2**D.**0**8、以下程序段的输出结果是(B)intx=5;if(x--<5)printf("%d",x);elseprintf("%d",x++);A.6B.4C.5D.39、算法描述可以有多种表达方法,下面(C)方法不可以描述算法A.自然语言B.伪代码C.机器语言D.N-S图10、for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是(C)A.2B.8C.3D.9第四章1、包含标准库函数scanf声明的头文件是(B)A.stdlib.hB.stdio.hC.time.hD.math.h2、以下关于函数的叙述中正确的是(C)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以定义任意一个函数3、以下正确的函数定义是(A)A.doublefun(intx,inty){doublez;z=x+y;returnz;}B.doublefun(intx,inty){z=x+y;retur nz;}C.fun(x,y){intx,y;doublez;z=x+y;returnz;}D.fun(intx,y){intz;returnz;}4、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(D)A.地址传递B.由用户指定传递方式C.由实参传给形参,再由形参传回实参D.单向值传递5、以下正确的描述是(A)A.函数的定义不可以嵌套,但函数的调用可以嵌套B.函数的定义可以嵌套,但函数的调用不可以嵌套C.函数的定义和函数的调用均可以嵌套D.函数的定义和函数的调用均不可嵌套6、以下关于函数的叙述中不正确的是(C)A.C程序是函数的集合,包括标准库函数和用户自定义函数B.在C语言程序中,函数的定义不能嵌套C.在C语言程序中,被调用的函数必须在main函数中定义D.在C语言程序中,函数的调用可以嵌套7、下列程序的运行结果是(D)#include<stdio.h>voidfun();intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){inta=20;printf("]",a);}A,2020C,1010D,20108、下列程序的运行结果是(D)#include<stdio.h>intfun1(intx);voidfun2();intx=5;intmain(){intx=1;x=fun1(x);printf("%d",x);return0;}intfun1(intx){x++;fun2();returnx;}{x++;}A.7B.5C.6D.29、以下不正确的说法是(C)A.在函数内定义的变量只在本函数范围内可以使用B.形式参数是局部变量C.在主函数内定义的变量可在其余函数中通用D.在不同函数中可以使用相同名字的变量10、下列程序的运行结果是()#include<stdio.h>voidfun();inta=5;intmain(){inta=10;fun();printf("]",a);return0;}voidfun(){a=a+5;printf("]",a);}A.55B.105C.510D.1010第五章1、利用冒泡排序得到升序排列,每一趟中从前到后遍历数组,将相邻两个数作比较,如果前面的数小于后面的数,则(C)。

A.将当前数据后移B.交换两个数的位置C.不做操作D.将当前数据前移2、在定义intm[][3]={1,2,3,4,5,6};后,m[1][0]的值是(C)。

A.2B.1C.4D.53、若给出以下定义:charx[]="abcdefg";chary[]={'a','b','c','d','e','f','g'};则正确的叙述为(C)。

A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度4、函数调用语句为:inta[10],maxnum;…maxnum=max(a);函数定义首部应为(B)。

A.doublemax(intb[])B.intmax(intb[])C.intmax(inta)D.intmax(intb)5、若有定义:intb[3][4]={0};则下述正确的是(D)。

A.没有元素可得初值0B.数组b中各元素可得初值但值不一定为0C.此定义语句不正确.D.数组b中各元素均为06.C语言中,由固定数目的同类型的变量按一定顺序排列而构成的是(A)。

A.数组B.结构体C.链表D.队列7、冒泡排序中,若有n个数,第一趟最多需要比较(C)次。

A.nB.2(n-1)C.n-1D.2n8.当数据已知的情况下,可以在定义数组时,对数组进行初始化,但不可(A)。

A.在方括号中写入变量表达式B.对数组元素赋同一初值C.对部分元素赋初值D.对全部元素赋初值9、数组元素下标可从(0)开始。

A.用户指定B.1C.任意自然数D.010、若不允许函数修改数组元素,则可以用(A)限定符作为数组参数的前缀,这样数组元素就成为函数中的常量。

A.constB.fixC.defineD.include第六章1、在16位系统中,定义以下结构体类型structs{inta;charb;floatf;};则语句printf("%d",sizeof(structs))的输出结果为(B)。

相关文档
最新文档