c语言考试题目

合集下载

c语言题目及答案

c语言题目及答案

考试题型一、单项选择题(30分)二、填空题(20分)三、阅读程序写结果(20分)四、编程序题(30)复习题一一、选择题1.下列说法中正确的是。

A.C语言程序由主函数和0个或多个函数组成B.C语言程序由主程序和子程序组成C.C语言程序由子程序组成D.C语言程序由过程组成2.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为。

A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,23.设有int i=010,j=10;则printf("%d,%d\n",++i,j--); 的输出的是。

A.11,10 B.9,10 C.010,9 D.10,9 4.设a、b为字符型变量,执行scanf("a=%c,b=%c",&a,&b); 后使a为'A', b为'B',从键盘上的正确输入是。

A.'A' 'B' B.'A','B' C.A=A,B=B D.a=A,b=B5.已知int x=12, y=3;执行下述程序后,变量x的值是____。

do{ x/=y--;}while(x>y);A.1 B.2 C.3 D.程序运行有错误6.C语言中while和do-while循环的主要区别是。

A.do-while的循环体至少无条件执行一次B.while的循环控制条件比do-while的循环控制条件严格C.do-while允许从外部转到循环体内D.do-while的循环体不能是复合语句7.设x和y均为int型变量,则执行下面的循环后,y的值为。

for (y=1,x=1;y<=50;y++) {if (x>=10 ) break;if (x%2==1) {x+=5;continue;}x - =3;}A.2 B.4 C.6 D.88.以下正确的说法是____。

C语言考试题目

C语言考试题目

1.整数加法运算2.求函数y=sin(x)3.两个数中最大者4.求5!5.给定一个大写字母,要求用小写字母输出6.给出三角形的三边长,求三角形面积7.求ax^2+bx+c=0方程的根8.先后输出BOY三个字符9. 10年后国民生产总值增长率10.存款利息计算11.输入两个实数,按代数值由小到大的顺序输出这两个数12.输入3个实数a,b,c,要求按由小到大的顺序输出13.输出abc最大14.输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换15.要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为60~69分,D等为60分以下16.写一程序,判断某一年是否闰年17.运输公司对用户计算运输费用。

路程(s km)越远,每吨·千米运费越低4.输入函数,输x出y18.求1+2+3+…+10019.在1000个人中,征集慈善募捐,当总数达到10万元时就结束,统计此时捐款的人数,以及平均每人捐款的数目。

20.输出以下4*5的矩阵21.输入一个大于3的整数n,判定它是否素数22.求100~200间的全部素数23.输函数24.百分制输成绩等级ABCDE25 .3*3矩阵对角线元素和26.数组中的值按逆序排放27.输出杨辉三角28.对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,且按逆序输出29.用数组处理求Fibonacci数列问题30.有10个地区的面积,要求对它们按由小到大的顺序排列31.将一个二维数组行和列的元素互换,存到另一个二维数组中32.有一个3×4的矩阵,求出其中值最大的那个元素的值,以及其所在的行号和列号33.输出一个已知的字符串35.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开34.输出一个菱形图36.有3个字符串,要求找出其中最大者37.折半查找程序38..写两个函数,求两个整数的最大公约和最小公倍数39.判断素数的函数40.输四位中间空一格的数字41.对10个字符按由小到大顺序排列42.由小到大输出3个整数43..输入10个整数,把最下的与第一个对换,最大的与最后一个对换44.输入4个整数,找出其中最大的数45.求n!46.输入10个数,要求输出其中值最大的元素和该数是第几个数47.有一个一维数组score,内放10个学生成绩,求平均成绩48.有两个班级,分别有5名和10名学生,调用一个average函数,分别求这两个班的学生的平均成绩49.用选择法对数组中10个整数按由小到大排序50.有一个3×4的矩阵,求所有元素中的最大值51.有一个一维数组,内放10个学生成绩,写一个函数,当主函数调用此函数后,能求出平均分、最高分和最低分52.给定b的值,输入a和m,求a*b和a m的值文件file1.c:53..n个整数,是前面各数顺序向后移m个位置,最后m个数变成最前面m个数54.求一个字符串的长度55.找出一行文字中大写小写字母、空格、数字以及其他字符各有多少56.通过指针变量访问整型变量57.输入a和b两个整数,按先大后小(降序)的顺序输出a和b58.对输入的两个整数按大小顺序输出59.通过指针变量输入和输出整型数组a的10个元素60.将数组a中n个整数按相反顺序存放61.用指针方法对10个整数按由大到小顺序排序62.输出二维数组任一行任一列元素的值。

c语言笔试考试题及答案

c语言笔试考试题及答案

c语言笔试考试题及答案一、选择题1. 在C语言中,字符型数据使用的关键字是:A. charB. intC. floatD. double答案:A2. 下列标识符中合法的是:A. 123nameB. _nameC. name$D. %name答案:B3. 表达式"5 + 3 * 2 - 4 / 2"的值是:A. 9B. 12C. 10D. 8答案:C4. 下列哪个语句可以用于在屏幕上输出字符型变量c的值:A. printf("%c", c);B. printf("%d", c);C. printf("%s", c);D. printf("%f", c);答案:A5. 下列哪个语句可以用于从键盘输入整型变量a的值:A. scanf("%d", a);B. scanf("%f", &a);C. scanf("%s", a);D. scanf("%c", &a);答案:B二、编程题1. 编写一个程序,输入一个整数n,计算并输出n的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个整数:");scanf("%d", &n);for (i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘为:%lld\n", n, factorial);return 0;}```2. 编写一个程序,输入一个整数n,判断并输出n是否为素数。

答案:```c#include <stdio.h>int isPrime(int num) {int i;if (num <= 1) {return 0;}for (i = 2; i <= num / 2; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int n;printf("请输入一个整数:"); scanf("%d", &n);if (isPrime(n)) {printf("%d是素数\n", n); } else {printf("%d不是素数\n", n); }return 0;}```三、简答题1. C语言中的指针有什么作用?答案:指针在C语言中用于直接访问内存地址,可以提高程序的执行效率和灵活性。

100条经典C语言笔试题目(全)

100条经典C语言笔试题目(全)

100条经典C语言笔试题目1、请填写bool , float, 指针变量与“零值”比较的if 语句。

提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。

例如int 变量n 与“零值”比较的if 语句为:if ( n == 0 )if ( n != 0 )以此类推。

(1)请写出bool flag 与“零值”比较的if 语句:【标准答案】if ( flag ) if ( !flag )(2)请写出float x 与“零值”比较的if 语句:【标准答案】const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 不可将浮点变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”此类形式。

(3)请写出char *p 与“零值”比较的if 语句【标准答案】if (p == NULL) if (p != NULL)2、以下为Linux下的32 位C程序,请计算sizeof 的值。

char str[] = “Hello” ; char *p = str ; int n = 10;请计算(1)sizeof (str ) = (2)sizeof ( p ) = (3)sizeof ( n ) =【标准答案】(1)6、(2)4、(3)4(4)void Func ( char str[100]) { ……;}请计算sizeof( str ) =(5)void *p = malloc( 100 ); 请计算sizeof ( p ) =【标准答案】(4)4、(5)43、long a=0x801010;a+5=?【标准答案】0x801010用二进制表示为:“1000 0000 0001 0000 0001 0000”,十进制的值为8392720,再加上5就是8392725。

4、用变量a给出下面的定义e) 一个有10个指针的数组,该指针是指向一个整型数的;f) 一个指向有10个整型数数组的指针;g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数;h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;【标准答案】e)int * a[10]; f)int (*a)[10]g)int (*a)(int); h) int (*a[10])(int)5、设有以下说明和定义:typedef union {long i; int k[5]; char c;} DATE;struct data { int cat; DATE cow; double dog;} too;DATE max;则语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是:_____【标准答案】DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.所以结果是20 + 32 = 52.当然...在某些16位编辑器下, int可能是2字节,那么结果是int2 + DATE10 + double8 = 20 6、请问以下代码有什么问题:int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}【标准答案】没有为str分配内存空间,将会发生异常问题出在将一个字符串复制进一个字符变量指针所指地址。

c语言考试题

c语言考试题

c语⾔考试题1、若要⽤fopen函数打开⼀个新的⼆进制⽂件,该⽂件要既能读也能写,则⽂件⽅式字符串应是()。

A、"rb+"B、"ab++"C、"ab"2、下⾯说法中错误的是( )。

A、共⽤体变量的地址和它各成员的地址都是同⼀地址B、共⽤体内的成员可以是结构变量,反之亦然C、函数可以返回⼀个共⽤体变量D、在任⼀时刻,共⽤体变量的各成员只有⼀个有效3、在定义构造数据类型时,不能()。

A、末尾不写分号B、说明存储类型C、初始化D、说明变量4、变量的指针,其含义是指该变量的()。

A、名B、地址C、⼀个标志D、值5、定义int a,x;,则能正确赋值的语句是( ).A、a=(x=1,x++,x+2);B、a="good";C、a=(a[1]+a[2])/2;D、a*=*a+1;6、以下程序的输出结果是( ).main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A、4B、3C、1D、27、以下叙述中正确的是(A)。

A、宏替换不占⽤运⾏时间,只占编译时间B、使⽤带参的宏时,参数的类型应与宏定义时的⼀致C、在程序的⼀⾏上可以出现多个有效的预处理命令⾏D、在以下定义中 C R 是称为"宏名"的标识符 #define C R 0458,在C语⾔程序中(B)。

A、函数的定义可以嵌套,但函数的调⽤不可以嵌套B、函数的定义不可以嵌套,但函数的调⽤可以嵌套C、函数的定义和函数调⽤不可以嵌套D、函数的定义和函数调⽤均可以嵌套9.在C语⾔中,调⽤函数除函数名外,还必须有(A)。

A、( )B、函数预说明C、实际参数D、函数返回值10.以下对C语⾔函数的描述中,正确的是(B)。

A、C函数既可以嵌套定义⼜可以递归调⽤B、C程序必须由⼀个或⼀个以上的函数组成C、函数必须有返回值,否则不能使⽤函数D、C程序中有调⽤关系的所有函数必须放在同⼀个程序⽂件中11.以下函数的类型是(C )。

c语言的考试题目答案及解析

c语言的考试题目答案及解析

c语言的考试题目答案及解析1. 题目:以下哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C解析:在C语言中,变量名必须以字母或下划线开头,不能以数字开头。

因此,选项A和D是不合法的。

选项B虽然以字母开头,但是数字紧跟字母,没有下划线或空格分隔,所以也是不合法的。

选项C 以下划线开头,符合变量命名规则。

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

选项B使用了单引号,这是用于字符字面量的,而不是字符串。

选项C和D是重复的,并且由于格式问题,它们可能没有正确显示,但假设它们是正确的字符串字面量,那么答案应该是A,因为它是第一个出现的合法字符串字面量。

3. 题目:以下哪个选项是C语言中正确的函数声明?A. int function(int x) {}B. void function() {}C. int function(int x, int y) {}D. All of the above答案:D解析:在C语言中,函数声明可以包含参数列表,也可以没有参数。

选项A和C都包含了参数列表,并且参数类型是int,这是合法的。

选项B没有参数列表,并且指定了返回类型为void,这也是合法的。

因此,所有选项都是正确的函数声明。

4. 题目:以下哪个选项是C语言中正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... }C. if (x > 0) { ... } else { ... }D. if (x > 0) { ... } elseif { ... }答案:C解析:在C语言中,条件语句必须使用if关键字,并且条件表达式需要用括号括起来。

C语言题目

复习题一一、单项选择题1.C语言程序的执行,总是起始于【】。

A) 程序中的第一条可执行语句B) 程序中的第一个函数C) main函数D) 包含文件中的第一个函数2.下列说法中正确的是【】。

A) C程序书写时,不区分大小写字母B) C程序书写时,一行只能写一个语句C) C程序书写时,一个语句可分成几行书写D) C程序书写时每行必须有分号3.下面对C语言特点,不正确描述的是【】。

A) C语言兼有高级语言和低级语言的双重特点,执行效率高B) C语言既可以用来编写应用程序,又可以用来编写系统软件C) C语言的可移植性较差D) C语言是一种结构式模块化程序设计语言4.C语言源程序的最小单位是【】。

A) 程序行B) 语句C) 函数D) 字符5.以下四项中属于C语言关键字的是【】。

A) CHAR B) define C) unsigned D) return6.十进制数2403转换成十六进制数为【】。

A) 963 B) 369 C) 953 D) 3597.二进制数00110101转换成八进制数是【】。

A) 055 B) 065 C) 056 D) 1528.将二进制数1011011.011转换成十进制数是【】。

A) 91.75 B) 91.375 C) 91.125 D) 91.259.计算机内部运算使用的数是【】。

A) 十进制数B) 十六进制数C) 二进制数D) 八进制数10.一个字长的二进制位数是【】。

A) 2个BYTE,即16个bit B) 3个BYTE,即24个bit C) 4个BYTE,即32个bit D) 随计算机系统不同而不同11.在C语言系统中,假设int类型数据占2个字节,则double、long、unsigned int、char 类型数据所占字节数分别多少【】。

A) 8,2,4,1 B) 2,8,4,1 C) 4,2,8,1 D) 8,4,2,112.下面程序段执行结果是【】。

int i=5,k;k=(++i)+(++i)+(i++);printf("%d,%d",k,i);A) 24,8 B) 21,8 C) 21,7 D) 24,713.下面程序段执行结果是【】。

C语言试题练习及答案(都是历年的考题)

C语言试题练习及答案(都是历年的考题)第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是()A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号 2、下面关于C语言的叙述中,错误的是() A. 若一条语句较长,也可分写在下一行上 B. 构成C语言源程序的基本单位是表达式 C. C语言源程序中大、小写字母是有区别的 D. 一个C语言源程序可由一个或多个函数组成 3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型 4、C程序中main函数的位置()A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后 5、C语言的函数体由()括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是()A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面 7、一个程序的执行是从()A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束 8、结构化程序设计的三种基本结构是()A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构 9、调试程序是指对程序进行()A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于() A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间 11、构成C语言源程序的基本单位是() A. 语句 B. 过程 C. 表达式 D. 函数语法基础12、在C语言中,正确的用户标识符是() A. 3f B. _for C. structD. _f.5113、C语言的基本数据类型包括()A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型 D. 整型、实型、逻辑型 14、以下()是正确的常量A. E-5B. 1E5.1C. ?a12?D. 32766L 15、以下()是正确的变量名A. a.beeB. �Cp11C. intD. p_11 16、以下()是正确的字符常量A. “c”B. ?//”C. ?W?D. “\\32a” 17、以下()是不正确的字符串常量A. ?abc?B. “12?12”C. “0”D. “ “ 18、C语言的整型数据在内存中的存储形式是() A. 原码 B. 反码 C. 补码 D. ASCII码19、以下()是正确的浮点数A. e3B. .62C. 2e4.5D. 123 20、下列不属于C语言关键字的是()A. continueB. integerC. staticD. signed 21、C语言的字符型数据在内存中的存储形式是() A. 原码 B. 补码 C. 反码 D.ASCII 22、在C语言中,变量所分配的内存空间大小是() A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是()A. a-=(a*3)B. double(-1)C. a*3D. a*4=3 24、语句x=(a=3,b=++a);运行后,x、a、b的值依次为() A. 3,3,4 B. 4,4,3 C.4,4,4 D. 3,4,3 25、语句a=(3/4)+3%2;运行后,a的值为() A. 0 B. 1 C. 2 D. 326、以下四项中,符合C语言语法的语句是()A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为() A.3,3 B. 4,4 C. 4,3 D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b 29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是() A. x%(-3) B. a+=-1 C. a=b=2 D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是() A.x=x*3=2 B. x=(y==1) C. i=float(x) D. i%(-3) 31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是()A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C.变量名必须由字母或下划线组成 D. 变量的类型确定了变量的取值范围233、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为() A. 5 B. 1C. 6D. 0 34、下面叙述正确的是()A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. ?A?与”A”等价 35、下面叙述中,错误的是()A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行 36、下面叙述正确的是()A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的 C. ?A?*?B?是不合法的 D. “A”+”B”是合法的 37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为() A. 1 B. 0 C. 6 D. 738、设整型变量a为5,使b不为2的表达式是()A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为() A. 1B. 0C. 2D. 340、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是() A. 7 B.8 C. 9 D. 1041、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是() A. 7 B.8 C. 9 D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为() A. 8B. 6C. 7D. 543、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为() A. 4B. 5C. 6D. 744、C语言的运算符按运算对象的个数可以分为() A. 单目运算符一种 B.单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()A. scanf(“%5.2f”,&m); B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“o”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%ld”,&a);B. scanf(“%lf”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A. scanf(“%d”,&a);B. scanf(“%lf”,&a);C. scanf(“%c”,&a);D.scanf(“%u”,&a); 48、putchar()函数的功能是向终端输出()A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式 49、以下程序段运行后的输出结果是() int k=11;printf(“k=%d,k=%o,k=%x\\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=133C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“M+=+-”,x,y,z);运行后的输出结果为()A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+12 51、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是() A. 10AB B. 10 A B C. 10A B D. 10 AB 52、以下程序段的运行结果是()int a=0,b=0,c=0; if(a&&++b) c++;printf(“%d,%d\\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,0 53、以下程序的运行结果是()void main() {int a=65; char c=?A?;printf(“%x,%d”,b,c); }A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是() A.printf(“%d%d”,a,b); B. printf(“%d/”,a,b); C. printf(“//”,a,b);D. printf(“/%d”,a,b); 55、运行以下程序段时编译出错,其原因是()char c1='8',c2='2021'; printf(\A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2021“表示,而‘2021’不是字符串表示 C. ‘2021’只能赋值给字符数组 D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为() A. 1 B.0 C. t D. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是() A. 1 B. 非0的数 C. 大于0的数 D. 非0的整数 58、若已定义:int a=-36,b=-30,c;则语句c=a59、能正确表示数学关系式800>=y>=500的C语言表达式为() A. (y<=800)&&(y>=500) B. (y<=800)AND(y>=500) C. 800>=y>=500 D. (y<=800)&(y>=500) 60、若有定义:int x=3,y=4;则表达式!x||y的值为()4A. 1B. 0C. 3D. 4感谢您的阅读,祝您生活愉快。

c语言试题及答案大全

c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。

B. C语言可以被编译成机器语言执行。

C. C语言的语法和C++完全相同。

D. C语言不支持面向对象的编程。

答案:B. C语言可以被编译成机器语言执行。

2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。

其中,n由用户输入。

答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。

素数是指除了1和自身外,无法被其他整数整除的整数。

答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。

c语言题目及答案

注意:所有答案都要写在答题卡上一、单项选择题(20分,每题2分)1.执行下列程序段后,正确的结果是(B)int k, a[3][3] = {1,2,3,4,5,6,7,8,9};for(k=0; k<3; k++)printf(“%2d”, a[k][k]);A) 1 2 3 B) 1 5 9 C) 1 4 7 D) 3 6 92.若a是int类型变量,则计算表达式a=25/3%3的值是:(B)A)3 B)2 C)1 D)03.下面正确的字符常量是:(C)A)“c” B)‘\\’’ C)‘W’ D)‘’4.C语言中,运算对象必须是整型的运算符是:(B)A)% B)/ C)* D)+5.数字字符0的ASCII值为48,若有以下程序main(){char a='1', b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是。

(B)A)3,2 B)50,2 C)2,2 D)2,50 6.以下语句或语句组中,能正确进行字符串赋值的是。

(D)A)char *sp;*sp="right!"; B)char s[10];s="right!";C)char s[10];*s="right!"; D)char *sp="right!";7.for(i=0;i<10;i++)if(i〈=5〉break;则循环结束后i的值为(B)A)0 B)1 C)5 D)108.执行下列程序段后,正确的结果是(C)char x[8] = {8,7,6,5,0,0}, *s;s = x+1;printf(“%d\n”, s[2]);A) n B) 0 C) 5 D) 69.C语言规定,简单变量作为实参时,他和对应形参之间的数据传递方式是:AA)单向值传递B) 地址传递C) 相互传递D) 由用户指定方式10.设有数组定义:char str[]=”China”;则下面的输出为(C)printf(“%d”,strlen(str));A)4 B)5 C)6 D)7二、填空题(30分,每空2分)1.下列程序段的输出结果是 3 。

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

习题5.2看书。

习题5.4 输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数#include<stdio.h>int main(){intletter,space,number,other;charstr;letter=space=number=other=0;while((str=getchar())!='\n'){ if('a'<=str&&str<='z'||'A'<=str&&str<='Z') letter++;else if(str==' ') space++;else if('0'<=str&&str<='9') number++;else other++;}printf("letter=%d,space=%d,number=%d,other=%d",letter,space,number, other);return 0;}习题5.10求一个分数序列2 1,32,53,85···求出这个数列的前20项之和。

#include<stdio.h>int main(){inti,n;float sum,s,t,b;//浮点型,运算有小数sum=0;s=2,b=1,n=20;for(i=1;i<=n;i++){sum=sum+s/b; //先求和整个式子的和t=s; //保存使用过的ss=s+b; //将s累加b=t;// 将保存的原始s赋值给b}printf("sum=%16.10f",sum);return 0;}习题6.2用选择法对10个整数排序。

#include<stdio.h>int main(){int a[10],min,temp,i,j;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){min=i;//记住第一次比较的数for(j=i+1;j<10;j++)if(a[min]>a[j]) min=j;temp=a[i];a[i]=a[min];//a[min]是最小的数并放在第i个位置0,1,2...a[min]=temp;// a[i]处的值放在最小数所在的位置,需要用temp暂时存储!!}for(i=0;i<10;i++)printf("%4d",a[i]);return 0;}习题6.3求一个3*3矩阵的对角线元素之和#include<stdio.h>int main(){int a[3][3],i,j,sum;sum=0;for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%6d\n",sum);return 0;}习题6.10统计一篇文章3行文字,每行80个字符,统计英文大写字母,小写字母,数字,空格以及其他字符的个数。

#include<stdio.h>int main(){inti,j,upp,low,num,spa,oth;upp=low=num=spa=oth=0;char text[3][80];for(i=0;i<3;i++){printf("please input line%d:",i+1);gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z') upp++;else if(text[i][j]>='a'&&text[i][j]<='a') low++;else if(text[i][j]>='0'&&text[i][j]<='9') num++;else if(text[i][j]==' ') spa++;elseoth++;}}printf("upp=%d\nlow=%d\num=%d\nspa=%d\noth=%d\n",upp,low,nu m,spa,oth);return 0;}习题6.13 将两个字符串连接起来,不使用strcat函数#include<stdio.h>int main(){char s1[80],s2[80];inti=0,j=0;scanf("%s",s1);scanf("%s",s2);while(s1[i]!='\0') // i最终指向\0 退出循环i++;while(s2[j]!='\0')s1[i++]=s2[j++]; //j指向\0 退出循环尾部未加上\0s1[i]='\0'; //尾部加上\0printf("%s",s1);return 0;}习题6.14比较两个字符串s1和s2不使用strcmp函数#include <stdio.h>int main() // 实现strcmp的功能{inti,resu;char s1[100],s2[100];gets(s1);gets(s2);i=0;while((s1[i]==s2[i])&&(s1[i]!='\0')) i++;resu=s1[i]-s2[i];printf("%d",resu);return 0;}习题6.15将字符数组s2的全部字符复制到字符数组s1中,不使用strcpy函数。

#include<stdio.h>#include<string.h>//strcpyint main (){char s1[100],s2[100];inti;scanf("%s",s2);for(i=0;i<=strlen(s2);i++) //strlen为s2的有效长度,但是s[0]-s[],引用时引用了\0.s1[i]=s2[i];printf("s1:%s\n",s1);return 0;}习题7.2略习题7.5.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

#include<stdio.h>#include<string.h>int main(){void inverse(char str[]);charstr[100];scanf("%s",str);inverse(str);printf("inverse string:%s\n",str);return 0;}void inverse(char str[]){char t;inti,j;for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--){t=str[i];str[i]=str[j-1];str[j-1]=t;}}习题7.9 编写一个函数,由实参传来一个字符串,统计此字符串中字母,数字,空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

#include<stdio.h>intletter,number,space,other;int main(){ void count(char [] );char t[100];gets(t);letter=number=space=other=0;count(t);printf("letter=%d\nnumber=%d\nspace=%d\nother=%d\n",letter,numbe r,space,other);return 0;}void count(char str[]){ inti;for(i=0;str[i]!='\0';i++)if('A'<=str[i]&&str[i]<='Z'||'a'<=str[i]&&str[i]<='z') letter++;else if(str[i]==' ')space++;else if('0'<str[i]&&str[i]<'9')number++;else other++;}习题7.11写一个函数,用“起泡法”对输入的10个字符按从小到大顺序排列#include <stdio.h>#include<string.h>#define N 10 //预处理没有分号!char str[N];int main(){void sort(char[]); // 函数的引用性声明inti,flag;for(flag=1;flag==1; ){scanf("%s",&str);if(strlen(str)>N)printf("string too long input again!");else flag=0;}sort(str);for(i=0;i<N;i++)printf("%c",str[i]);return 0;}void sort(char str[]) // 函数定义{inti,j;char t;for(j=1;j<N;j++) //循环N-1趟for(i=0;i<(N-j)&&(str[i]!='\0');i++) // 第j趟要进行N-j 趟比较。

第一趟,进行N-1趟比较。

if(str[i]>str[i+1]) //哪个数大,哪个数浮到末尾。

相关文档
最新文档