C语言考题(综合版)
- 格式:doc
- 大小:3.08 MB
- 文档页数:72
C语言练习题一、选择题1.一个完整的C源程序是【B】。
A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2.以下关于函数的叙述中正确的是【C】。
A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3.以下关于函数的叙述中不正确的是【B】。
A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4.在一个C程序中,【B】。
A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5.C程序的执行是从【A】开始的。
A)主函数B)子函数C)从程序第一行D)printf()函数6.以下选项中不合法的标识符是【C】A)printB)FORC)&aD)_007.以下选项中可作为C语言合法常量的是【A】A)-80 B)-080 C)-8e1.0 D)-80.0e8.以下选项中不属于字符常量的是【B】A)′C′B)"C"C)′\xCC′D)′\072′9.若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】A)float B)longC)int D)double10.以下关于函数叙述中,错误的是【D】。
A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式11.C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【D】。
一、编程题1.输入2个整数,求两数的平方和并输出。
#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。
#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。
2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score ,按下列原则输出其等级:score≥90,等级为A ;80≤score<90,等级为B ;70≤score<80,等级为C ;60≤score<70,等级为D ;score<60,等级为E 。
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语言综合试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的基本数据类型?A. intB. floatC. charD. string答案:D3. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. !=C. <=D. >=答案:A4. C语言中,以下哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A5. 在C语言中,以下哪个关键字用于声明一个函数?A. functionB. defC. voidD. int答案:C6. C语言中,以下哪个选项是正确的数组声明?A. int array[10];B. int array[];C. int array[10] = {0};D. All of the above答案:D7. 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. All of the above答案:D8. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A9. C语言中,以下哪个选项用于定义一个无限循环?A. while(1)B. for(;;)C. do whileD. All of the above答案:D10. 在C语言中,以下哪个关键字用于声明一个指针?A. pointerB. ptrC. *D. ref答案:C二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。
c语言的试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的叙述,正确的是()。
A. 变量在使用前必须先声明B. 变量的类型不能改变C. 变量的值在使用过程中不能改变D. 变量的存储类别不是必须指定的2. C语言中,字符串常量存储在()。
A. 栈区B. 堆区C. 数据区D. 文字常量区3. 下列关于C语言函数的描述,错误的是()。
A. 函数可以没有返回值,也可以有返回值B. 函数的返回值类型必须与定义时的类型一致C. 函数的参数可以是常量,也可以是变量D. 函数可以嵌套定义4. C语言中,用于输入输出的基本格式是()。
A. printf() 和 scanf()B. puts() 和 gets()C. fprintf() 和 fscanf()D. sprintf() 和 sscanf()5. 在C语言中,指针的算术运算规则是()。
A. 指针的增量等于指针所指向的数据类型的大小B. 指针的增量是任意的整数C. 指针不能进行算术运算D. 指针的增量必须为16. C语言中,结构体(struct)可以用来创建()。
A. 函数B. 类C. 联合体D. 集合7. 下列关于C语言中数组的描述,正确的是()。
A. 数组的大小在定义后可以改变B. 数组在定义时必须指定其大小C. 数组的大小是动态分配的D. 数组的索引从1开始8. C语言中,预处理指令#define的主要用途是()。
A. 定义常量B. 定义变量C. 定义函数D. 定义类9. 在C语言中,表示逻辑“与”操作的符号是()。
A. &&B. ||C. ^D. !10. 下列关于C语言中文件操作的描述,错误的是()。
A. 文件操作需要使用文件指针B. 文件的打开需要使用fopen()函数C. 文件的关闭需要使用fclose()函数D. 文件的读写操作必须在打开文件之后进行二、填空题(每题2分,共20分)11. C语言中,整型变量`int`在32位系统上通常占用________位。
目录第一章 C语言基础知识(C语言概述、算法、数据类型运算符表达式、位运算)一、判断题(正确的填A,错误的填B)R1.在C语言中,逗号运算符的优先级最低。
(A)2.在C语言可执行程序的开始执行点是程序中第一个函数。
(B)3.“5ch”是合法的变量名。
(B)4.C语言程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。
(A)5.当输入数据时,必须指明变量的地址,如scanf("%f",&f) (A)N6.表达式i++与++i在任何场合功能完全相同。
(B)7.在赋值表达式中,赋值号左边的变量和右边的表达式之值的数据类型可以不相同。
(A)R8.C语言程序中,语句以逗号结尾。
( B )9.在 C 程序中,APH 和aph 代表不同的变量。
( A )10. a-=7等价于a=a-7。
( A )N11. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按原字符长从左向右全部输出。
(A )12.如果x>y为真或a<b为真,表达式(x>y)&&(a<b)就为真。
( B )13.C语言程序的变量必须先定义再使用。
( A )14.若a和b是同类型变量,在执行了赋值语句a=b;后b中的值将放入a中,b 中的值将丢失。
( B )15.程序的执行总是从main函数开始,在程序的最后一个函数中结束。
(B )16.变量的三个属性是指变量的名字、变量的值和变量在内存中的地址。
(A)17. 运算符优先顺序:赋值运算符<逻辑运算符<关系运算符<算术运算符(B)18.对应float类型的变量,也可以用等号“==”进行数值的判断。
(B)19.表达式:1 && 3.14 和 1 & 3 的值一样大。
(B)20. 为了正确计算表达式既要考虑运算符的优先级,也要考虑其结合性。
大学C 语言考试题库第 1 章 C 语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。
A. AB. BC. DD. E(2) 在 C 语言中,每个语句必须以 D 结束。
A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。
A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将 ( B )。
A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件(5) 下列说法中正确的是( B )。
A. 由于 C 源程序是高级语言程序,因此一定要在TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。
A. C 语言程序由主函数和0 个或多个函数组成C. C 语言程序由子程序组成(7) 下列说法中错误的是( D )。
B. C 语言程序由主程序和子程序组成D. C 语言程序由过程组成A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有32 个关键字和 9 种控制语句。
(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系1统软件又适合于编写应用程序。
(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行 C 语言程序。
(4) 在 C 语言程序中允许出现的字符集是 ASCII 码字符集。
(5) C 语言的程序中有特殊含义的英语单词称为保留字。
(6) C 语言标识符的长度是前 8 位有效。
(7) C 语言中,标识符的定义规则是以字母或下划线为开头。
C语言单元练习题第一单元数据类型、表达式及顺序结构练习题一、选择题:1、不合法的C语言整型常量是。
A. –012B. 0x35C. 123LD. 8E22、不合法的C语言实型常量是。
A. E3B. .123C. –6.2E4D. 5.03、不合法的C字符常量是。
A. ´2´B. ´\101´C. ´AB´D. ´\n´4、下列四组选项中,均是不合法的用户标识符的选项是。
A. W P_0 doB. b-a goto intC. float la0 _AD. -123 abc TEMP5、定义三个变量a、b、c,并分别赋初值为5。
能实现该功能的语句是。
A. int a=b=c=5;B. int a,b,c=5;C. int a=5,b=5,c=5;D. int a=5;b=5;c=5;6、设有说明:char w;int x; float y;double z;则表达式w*x+z-y值的数据类型为。
A. floatB. charC. intD. double7、以下选项中不能用作C程序合法常量的是()。
A. 1.234B. '123'C.123D."\x7G"8、以下选项中可用作C程序合法实数的是()A. .1e0B.3.0e0.2C.E9D.9.12E9、下列标识符中,不合法的用户标识符为()。
A. PadB. CHARC. a_10D. a≠b10、以下选项中能表示合法常量的是()。
A.整数:1,200B.实数:1.5E2.0C.字符斜杠:‘\’D.字符串:"\007"11、以下选项中,能用作数据常量的是()。
A.o115B. 0118C.1.5e1.5D. 115L12、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是()。
A.1B.0C.2D.313、若有定义语句:int x=10;,则表达式x-=x+x的值为()A.-20B.-10C.0D.1014、表达式:(int)((double)9/2)-(9)%2的值是()。
计算机系c语言考试题及答案C语言作为计算机科学与技术专业中的重要课程之一,考试是检验学生对于C语言基本知识和编程能力的重要方式之一。
下面将为大家提供一套C语言的考试题目及其答案,帮助大家更好地复习和准备考试。
题目一:简答题(20分)1. C语言中的运算符有哪些?请分别举例并说明其功能。
2. 什么是指针?请简要描述指针的概念和用途。
3. C语言中的控制结构有哪些?请简要说明各种控制结构的特点和应用场景。
(参考答案)1. C语言中常见的运算符包括算术运算符(+、-、*、/)、关系运算符(>、<、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~)、赋值运算符(=)、条件运算符(? :)等。
例如:算术运算符可以用于对变量进行加减乘除等操作,如 a + b、c - d;关系运算符用于比较两个变量的大小关系,如a > b;逻辑运算符用于进行逻辑判断,如 a > b && c < d;位运算符用于对二进制位进行位操作,如 a & b。
2. 指针是C语言中的一种特殊数据类型,用于存储变量的内存地址。
可以通过指针来间接访问或修改对应内存地址中的数据。
指针在C语言中具有重要作用,可用于动态分配内存、传递参数、实现数据结构等。
例如,int *p; 声明了一个整型指针变量p,可以用来存储整型变量的地址。
3. C语言中的控制结构包括顺序结构、分支结构(if-else语句、switch-case语句)和循环结构(for循环、while循环、do-while循环等)。
顺序结构按照代码的先后顺序依次执行;分支结构根据条件的判断结果选择执行不同的代码段;循环结构根据条件的判断结果重复执行一段代码。
这些控制结构在程序设计中用于控制程序的流程和逻辑。
题目二:编程题(30分)实现一个简单的学生成绩管理系统,要求能够输入学生信息(包括姓名、学号、各科成绩等),并能够计算并显示学生的平均成绩和总成绩。
程序基本知识
答案:B main()函数是程序的入口和出口,和其它代码位置没关系。
答案:C C程序基本单位是函数。
答案:A
答案:A
答案:C
答案:D
基本数据类型和基本运算
答案: B 浮点数两种表示方式,一种是普通小数方式,另一种是科学计数法。
科学计数法中间为e,前边为[1,10〕的实数表示尾数,后边为整数表示10的指数,正负均可。
答案:C 标识符开头只能是字母或下划线,不能是数字。
答案:D 单引号括起来的应该是单个字符
答案:A 双引号括起来的是字符串
答案:A
答案:A 求余运算两边必须全为整数
答案:D
答案:D 这四种运算符中,非运算级别最高,算术运算比比较运算级别高,最低的是赋值运算
答案:C D 项错误在于scanf从第2个参数开始应该是地址引用
答案:D x先和自减1后的y相加,结果赋给y,再自加1
答案:A 输入时必须包含逗号
答案:C
答案:A B项逻辑或两边都是假,C项做完逻辑与后才可以自加,D项括号内是赋值运算而非比较运算
答案:B x+z后结果已经变成浮点数了
答案:D y=0+1=1
答案:D 3.5/2+11%2/2=1.75+1/2=1.75+0=1.75
答案:B 数轴上一段连续区间必须用两个逻辑表达式相与得到。
答案:B 逻辑与两边明显矛盾
答案:B 0.5+0=0.5
答案:B 4.0/2+2%3=2.0+2=4.0
答案:C
答案:D a|b=3 ,10 右移3位为1
答案:D
答案:D 2+=2+4%2=4
答案:D 非0值经过非运算后变成假,两个假或还是假
答案:A x^y=2,2 左移两位为8
答案:C
答案:A 1/3结果为0,整个式子结果为0
答案:A
分支结构
答案:A 其它三项都是如果k是0,则打印No,否则打印Yes。
答案:A 这是两步操作,n=2已经不是if结构里的了。
答案:A 条件判断为逻辑非,直接执行打印语句。
答案:B
答案:C 余数为3,只能执行default后续printf(),后边没有break(),再执行case 1后边的printf().
循环结构
答案:A
答案:B 两个i - -相当于i-=2
答案:B 括号里的条件先比较,再将i减1
答案:C 其它的i没有变化
答案:A i=1 j=2 0+1+2=3
j=3 3+1+3=7 依次类推,最终m为45 函数
答案:A
答案:D
答案:B
答案:C 传入实参为5和4,函数中两者比较,得到z为5,返回5+5=10并打印。
答案:C 逗号运算符隔开的式子以最后一个部分为准。
答案:A
宏和编译预处理
答案:3*NN=3*N*N-M=3*M+1*M+1-M=3*M+1=3*5+1=16
答案:A 宏定义末尾不加分号
答案:B K*(a+b)=5*(3+4)=35
答案:A B项中宏定义是编译预处理语句,不需要编译,只是字符替换。
C项中宏定义中的名字一般常采用大写字母表示,小写也对。
D项中C语言程序可以有多条预处理命令。
数组
答案:A 第一趟循环后:2103456789 第二趟后:2143056789 第三趟后:2143650789
第四趟后:2143658709,循环结束,打印即为结果。
答案:D 数组名可以代表整个数组的首地址,或者是第一个元素的地址,而不能来引用第一个元素;C语言中,数组长度一旦固定就不能更改;定义数组时数据类型不能省略。
答案:B 最大下标为7
答案:C
答案:B 二维数组定义时第二维不能省略
答案:B
答案:D
答案:B puts()碰到’\0’就停止输出
答案:A i=1时,打印10-a[2][0]=10-7=3 ,后边依次类推。
答案:B 就是1+3+4+6=14
答案:D
答案:D 二维数组初始化必须要定义好第二维,不要有任何一维超过定义
答案:B 数组首地址用数组名表示
答案:C strlen()函数求长度到’\0’为止
答案:D strupr()是把字符串里所有字母变成大写,strcat()是连接字符串,将第2个字符串接到第一个后边。
指针
答案:C
答案:A 就是两个指针变量交换数据
答案:A 程序含义是对比两个数组里同下标的数据,第一个数组对应数据小的,输出
答案:A 数组名字(首地址)不能进行++运算
答案:B 其它类型都不符合。
答案:D
答案:A 数组首地址不能进行自加运算
答案:C 该指针与数组首地址间距离为3
答案:B
答案:B
答案:B
答案:A
答案:D 自定义函数fn作用就是把实参数组里内的所有元素都加了10
结构体
答案:AB 均可C项重复声明且没划出存储空间,D项数据成员引用错误
答案:B 非指针成员的引用用点号
答案:C
答案:A 应该是p[1].num
答案:D C语言中字符串赋值给结构体成员要用gets(),scanf(),strcpy()这类函数共用体
答案:B 共用体里边的数据以最后一个作赋值或运算的为准。
此处应该是A后边的字符的。
枚举与typedef
答案:A 把系统内已经定义的int给一个别名INTEGER
答案:AB 均对,分别是用typedef重定义后再定义变量d和直接用枚举类型定义。
答案:C
文件
答案:C
答案:B
答案:B
答案: B
答案:C 注意rewind()函数的功能改错:
注:星号之间没有空格
#include <stdio.h>
void main()
{
int m,n;
for(m=1; m<=5; m++)
{
printf("\n");
/**/ for(n=1; n<=m;n++) /**/
printf(" ");
for(n=1;n<=m*2-1;n++)
printf("%c",/**/ "*" /**/);
}
getch();
}
第一处:for(n=1;n<=5-m;n++) 第二处:’*’
#include <stdio.h>
/**/ fun( int n ) /**/
{
double x = 0.0;
int i,sgn=1;
for(i=3;i<=n;i++)
{x+=sgn/(5+/**/ 3*i /**/);
sgn=sgn*(-1);
}
return (/**/ sgn /**/);
}
void main()
{
clrscr();
printf("fun(8) = %8.3lf\n", fun(8));
getch();
}
第一处:double fun( int n ) 第二处:3*(double)i 第三处:x。