C语言考题(综合版)
C语言综合习题及答案

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】。
C语言试题及答案汇编

一、编程题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语言程序设计题库及答案,推荐文档

D.a2_b 19 . 以下叙述中错误的是__A___。 A.用户所定义的标识符允许使用关键字 B.用户所定义的标识符应尽量做到“见名知意 C.用户所定义的标识符必须以字母或下划线开头 D.用户定义的标识符中,大、小写字母代表不同标识 20 . C 语言程序中,下列( C)组标识符是合法。 A.abc、2id、while B.4d、DO、oodb
B.二进制
C.十进制
D.八进制
3 . 以下不正确的 C 语言标识符是(C )。
A.AB1
B._ab3
C.4ab
D.a2_b
4 . 以下运算符中优先级最低的运算符是_D____。
A.&&
B.& C.||
D.=
5 . 在 C 语言中,要求运算数必须是整型的运算符是___A___。
A.%
B./ C.<
D.!
12 . 以下说法不正确的是__D___。 A.在 C 程序中,逗号运算符的优先级最低 B.在 C 程序中,aph 和 aPh 是两个不同的变量 C.若 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值不变 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输 入实型数 13 . C 语言程序的基本单位是_C______。 A.程序行 B.语句 C.函数 D.字符 14 . C 语言程序中,下列(C )组符合变量命名规则。 A.for、-sub、xy
A.1
B.3
C.2.0
D.2.5
19 . func(exp1,(exp2,exp3),(exp4,exp5,exp6));含有(C )个实参。 A.1 B.2 C.3 D.6 20 . 有 int x=3,y=4,z=5;则下面表达式中值为 0 的是__B____。 A.x&&y B.! (x<y&&!z||1) C.x||y+z&&y-z D.x<=y 21 . 已定义 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语言综合试题及答案一、选择题(每题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语言的试题及答案

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语言基础知识(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语言试题及答案

大学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 语言中,标识符的定义规则是以字母或下划线为开头。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18: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。