c语言练习题1.docx

合集下载

C语言考试试题精选.doc

C语言考试试题精选.doc

习题1一、选择题:1.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是(B)A.大写字母B.连接符C.数字字符D.下划线2.下列数据中是合法的整型常量的是(BCDEF )A. 3E2B. -32768C. 18)000D. OxffffE. 029F. 0xl2H3.下列数据中是合法的字符常量的是(BEH)A. “A”B. '!'C. 'AB'D. hE. '\\'F. "\1234‘G. '\xl23' H. '\0' I. '\k'4.设有定义:intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是(A )A. k++B. k+=lC. ++kD. k+15.有以下程序,其中%11表示按无符号整数输出main ()(unsigned int x二OxFFFF; /* x的初值为十六进制数*/printf ( "%u\n" , x);}程序运行后的输出结果是(B)A. -1B. 65535C. 32767D. OxFFFF6.设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是(C )A. if (x++) ;B.if(x>y&&y!二0);C. if (x>y) x一else y++;D. if (y<0) (;} else x++;7.以下选项中,当x为大于1的奇数时,值为0的表达式(D )A. x%2=lB. x/2C. x%2!二0D.x%2=08.已知大写字母'A,的ASCII码值是65,小写字母'a' 的ASCII码值是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(D )A. c=(c-A)%26+'a'B. c二c+32C. c=c~ A' +' a'D. c=('A' +c) %26—' a'9.有以下程序void main ()(unsigned char a二2, b二4, c二5, d;d二a|b; d&二c; printf(〃%d\n〃, d); }程序运行后的输出结果是(B )A. 3B. 4C. 5D. 6二、填空题:1.设x=2. 5, a=7, y二4. 7,则x+a%3*(int) (x+y)%2/4的值为_2. 5 o2.设a=2 , b二3 , x二3.5 , y二2.5 ,则(float) (a+b) /2+ (int) x%(int) y 的值为_3. 500000________________________________________________ 。

完整word版,函数练习题(C语言)带答案

完整word版,函数练习题(C语言)带答案

C语言函数练习题一、选择题1. 一个完整的C源程序是【】。

A)要由一个主函数或一个以上的非主函数构成B)由一个且仅由一个主函数和零个以上的非主函数构成C)要由一个主函数和一个以上的非主函数构成D)由一个且只有一个主函数或多个非主函数构成2. 以下关于函数的叙述中正确的是【】。

A)C语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束D)main可作为用户标识符,用以定义任意一个函数3. 以下关于函数的叙述中不正确的是【】。

A)C程序是函数的集合,包括标准库函数和用户自定义函数B)在C语言程序中,被调用的函数必须在main函数中定义C)在C语言程序中,函数的定义不能嵌套D)在C语言程序中,函数的调用可以嵌套4. 在一个C程序中,【】。

A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置5. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【】A)float B)longC)int D)double6. 以下关于函数叙述中,错误的是【】。

A)函数未被调用时,系统将不为形参分配内存单元B)实参与形参的个数应相等,且实参与形参的类型必须对应一致C)当形参是变量时,实参可以是常量、变量或表达式D)形参可以是常量、变量或表达式7. C程序中各函数之间可以通过多种方式传递数据,下列不能用于实现数据传递的方式是【】。

A)参数的形实结合B)函数返回值C)全局变量D)同名的局部变量8. 若函数调用时参数为基本数据类型的变量,以下叙述正确的是【】。

A)实参与其对应的形参共占存储单元B)只有当实参与其对应的形参同名时才共占存储单元C)实参与对应的形参分别占用不同的存储单元D)实参将数据传递给形参后,立即释放原先占用的存储单元9. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是【】。

C语言题库(1).docx

C语言题库(1).docx

一. 选择题 (单项)1. C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。

A必须为字母B必须为下划线C必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符2.下面 4个选项中,均是 C 语言关键字的选项是——。

Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面 4个选项中,均是不合法的用户标识符的选项是——。

A A P_0 doBfloat la0_AC b- a goto int D_123 temp INT4.在 C 语言中,int 、char 和 short 三种类型的数据在内存中所占用的字节数——。

A由用户自己定义B均为 2 个字节C是任意的D由所用机器的机器字长决定5.下面 4 个选项中,均是合法浮点数的选项是——。

A+1e+15e-9.403e2B- .60 12e-4-8e5C123e 1.2e-.4 +2e - 1D-e3 .8e-4 5.e -06.下面不正确的字符串常量是——。

AˊabcˊB〞 12ˊ12〞C〞0 〞D〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++, a+b)的值是——。

A7B8C6D28.以下正确的叙述是——。

A在 C 语言中,每行只能写一条语句B若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数C在 C 程序中,无论整数还是实数,都能被准确无误的表示D在 C 程序中, % 是只能用于整数运算的运算符9.以下表达式值为 3 的是——。

A 16-13%10B2+3/2C 14/3-2D(2+6)/(12- 9)10.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ˊ aˊ +i*f 值的数据类型为——。

A intB floatC doubleD 不确定11.在 C 语言中, char 型数据在内存中的存储形式是——。

C语言基础练习题(含答案)Word版

C语言基础练习题(含答案)Word版

目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。

(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。

A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。

A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。

A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。

A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。

A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。

A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。

c编程练习题(打印版)

c编程练习题(打印版)

c编程练习题(打印版)C语言编程练习题一、基础练习1. 编写一个程序,计算并输出两个整数的和、差、乘积和商。

提示:使用scanf函数输入两个整数,使用算术运算符进行计算。

2. 编写一个程序,计算并输出一个圆的面积。

提示:圆的面积公式为A = π * r * r,其中 r 是圆的半径。

3. 编写一个程序,计算并输出一个矩形的周长和面积。

提示:矩形的周长公式为 P = 2 * (l + w),面积公式为 A = l * w,其中 l 是长度,w 是宽度。

4. 编写一个程序,判断一个整数是奇数还是偶数。

提示:使用模运算符 % 来判断。

二、控制结构练习1. 编写一个程序,根据用户输入的分数,输出对应的等级。

提示:90分以上为 A,80-89分为 B,70-79分为 C,60-69分为D,60分以下为 F。

2. 编写一个程序,实现简单的猜数字游戏。

提示:程序随机生成一个1到100之间的整数,用户输入猜测的数字,程序根据用户输入给出提示(太高、太低或正确)。

3. 编写一个程序,实现一个简单的计算器。

提示:程序提示用户输入运算符(+、-、*、/)和两个操作数,然后输出计算结果。

三、数组练习1. 编写一个程序,实现对一个整数数组的排序。

提示:可以使用冒泡排序、选择排序或插入排序算法。

2. 编写一个程序,找出一个字符串数组中最长的字符串。

提示:遍历字符串数组,比较每个字符串的长度。

3. 编写一个程序,实现字符串的反转。

提示:可以使用数组的索引特性来实现。

四、函数练习1. 编写一个函数,计算一个数的阶乘。

提示:使用递归或循环来实现。

2. 编写一个函数,实现字符串的复制。

提示:不使用库函数,手动复制字符串。

3. 编写一个函数,判断一个字符串是否为回文字符串。

提示:回文字符串是指正读和反读都一样的字符串。

五、指针练习1. 编写一个程序,使用指针交换两个整数的值。

提示:注意指针变量的赋值和解引用。

2. 编写一个程序,实现字符串的连接。

c语言基础练习题(打印版)

c语言基础练习题(打印版)

c语言基础练习题(打印版)# C语言基础练习题(打印版)## 一、选择题1. C语言中,以下哪个是正确的数据类型?A. IntegerB. RealC. CharacterD. All of the above2. 下列哪个是C语言的关键字?A. voidB. intC. ifD. Both A and B3. 在C语言中,以下哪个语句用于定义一个整型变量?A. `int x;`B. `float x;`C. `char x;`D. `double x;`4. 以下哪个是C语言的控制结构?A. LoopB. ConditionalC. FunctionD. All of the above5. 在C语言中,以下哪个是正确的数组声明?A. `int numbers[];`B. `int numbers[10];`C. `int numbers(10);`D. Both A and B## 二、填空题1. 在C语言中,`printf`函数用于______。

2. 一个C语言程序的执行从`main`函数的______开始。

3. 在C语言中,`for`循环的一般形式是:`for(______,______,______);`4. 要计算两个数的和,可以使用C语言中的______运算符。

5. 在C语言中,字符串通常以______字符结尾。

## 三、简答题1. 简述C语言中变量的作用域和生命周期。

2. 解释C语言中的指针是什么,并给出一个使用指针的简单例子。

## 四、编程题1. 题目:编写一个C语言程序,打印出从1到10的整数序列。

```c#include <stdio.h>int main() {// 你的代码return 0;}```2. 题目:编写一个C语言程序,输入两个整数,计算它们的平均值,并打印结果。

```c#include <stdio.h>int main() {int num1, num2, average;// 你的代码return 0;}```3. 题目:编写一个C语言程序,使用数组存储5个整数,并打印数组中的每个元素。

(完整word)C语言题库(带详解答案)

(完整word)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。

-a1 B。

a[i] C。

a2_i D。

int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“—” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是( B ).A)3ax B)x C)case D)—e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是( C )。

A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是( A ).A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My-〉book line# His。

C语言章节习题集(全).docx

C语言章节习题集(全).docx

C语言程序设计第一、二章单项选择题1.将汇编语言编写的程序翻译成目标程序的程序是()A)解释 B)编译 C)汇编 D)目标2.不属于面向机器语言的是()A)符号语言 B)二进制语言 C)汇编语言 D)C 语言3.将高级语言编写的程序翻译成目标程序的程序是()。

A)解释 B)编译 C)汇编 D)二进制4.不属于高级语言的是()。

A)BASICB)CC)ALGOLD)符号语言5.程序段的基本结构中,不包含()。

A)函数结构 B)循环结构 C)顺序结构 D)分支结构6、C语言源程序的最小单位是()。

A、程序行B、语句C、函数D、字符7、以下说法正确的是()。

A、在C语言中,要调用的函数必须在main() 函数中定义B、C语言程序总是从第一个定义的函数开始执行C、C语言程序中, main() 函数必须放在程序的开始部分D、C语言程序总是从main() 函数开始执行8、以下对 C语言描述中正确的是()。

A、C语言源程序中可以有重名的函数B、C语言源程序中要求每行只能书写一条语句C、C语言源程序中,注释可以出现在任何位置D、最小的C源程序中没有任何内容9、对 C语言源程序执行过程描述正确的是()。

A、从main()函数开始执行,到main() 函数结束B、从程序的第一个函数开始执行,到最后一个函数结束C、从 main 函数开始执行,到源程序的最后一个函数结束D、从第一个函数开始执行,到 main 函数结束。

填空题1.能完成某个任务的、有始有终的 C语言 ___称为 C 程序。

2.用来编写程序的计算机语言称为 ____。

3.高级语言编写的程序称为 ____。

4.用C语言编写的源程序简称为“C程序”,扩展名规定为“____”。

5.C 程序经过“编译”后将获得扩展名为“OBJ”的 ____。

6.C 程序经过编译后获得的中间代码文件还需要经过____,才能成为可执行的“程序”,目标程序的扩展名规定为"EXE"。

c语言基础习题、复习题(含答案).doc

c语言基础习题、复习题(含答案).doc

《C语言设计》复习题一选择题1、以下说法中正确的是(C )。

C语言程序总是从main。

函数开始执行2、若已定义x和y为double类型,则表达式:x=l, y=x+^2的值是一C・C. 2.03、以下叙述正确的是口。

D.用do・・・while语句构成循环时,在while后的表达式为零时结束循环4、C程序是由)B.从Main函数开始5、设x、y、z和k都是int型变量,则执行表达式:x= (y=4, z=16, k=32)后,x 的值为C 。

C.326、设intb=2;表达式b/(b*2)的值是A ・A.07、表示关系X<=Y<=Z的C语言表达式为A .A.(X < =Y)&&(Y < =Z)8、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是典B.x=20,y=30,z=309、设A=3,B=4,执行printf("%d,%d",(A,B),(B,A));的输出是B .B.4,310、下面判断正确的是CC.char *s="china";等价于char *s;s="china";11、若有说明:inta[10];,则对a数组元素的正确引用是D.a[10-10]12在C语言中,int> char和short三种类型数据在内存中所占用的字节数D.由所用机器的机器字长决定13、C语言规定,函数返回值的类型是由必D.在定义该函数时所指定的函数类型所决定14、与y=(x>0?l:x<0?-l:0);的功能相同的if语句是AA.if(x > 0) y=l; else if(x < 0) y=-l; else y=015、执行语句:for(i=l;i++<4;)后;变量i的值是(C )C.516^语句while(!E);中的表达式!E等价于AA.E==017、假定a和b为int型变量,则执行以下语句后b的值为D.-418、对以下说明语句的宜确理解是Binta[10]={6,7,8,9,10};B.将5个初值依次赋给a[0]至a[4]19、以下不能对二维数组a进行正确初始化的语句是MC.inta[2][3]={{l,2},{3,4},{5,6}};20、在C语言中,一维数组的定义方式为:类型说明符数绢名DD.[整型常量]21、下列说法中正确的是oD.初始化值列表中的值的个数多于数组元素的22、若二维数组a有m列,则在a[i][j]前的元素个数为BB.i*m+j23、以下选项中,不能正确赋值的是工A.char sl[10];sl="Ctest";24、以下程序的输出结果是共B."BBB"25、设有数组定5C: char array [ ]="China";则数组array 所占的空间为£C.6个字节26、变量的指针,其含义是指该变量的典B.地址27、下面能正确进行字符串赋值操作的是MC.char*s;s="ABCDE";28、C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是A .A.单纯值传递29、C语言中A函数的递归调用。

c语言基础练习习题及答案.doc

c语言基础练习习题及答案.doc

c语言基础练习习题及答案.docC语言基础练习习题及答案-、单项选择题1.下列标识符屮,合法的用户标识符是_(B)_°A) B#123 B) _1234C) void D) xy*2.C语言屮,要求参加运算的数必须是報数的运算符是_(C) _0A) / B)!C) % D)==3.下面运算符屮,具有右结合性的是_(A)_。

A) = B)+ C)/ D)%4._________________________________________ 字符串"a\x44\\abcd\101b ”的长度是_(A) _______________________________________________ 。

A) 9 B)10C) 16 D)18解释:(a\x44 \\ a b c d\101 b)5.C语言允许一条语句写在两行上,下列语句不正确的是_(D)A) int a, B)int ab;,b;C) int D)int a,ba,b; ;6.C语言一行写不下时,可以一(C) _0A)用逗号换行B)用分号换行C)在任意一空格处换行D)用冋车符换行7.下所列的C语言常量屮,错误的是_(B)_oA) OXff B) 1.2eO.5(E后面指数必须为桀数) C) 2L D) \72‘8.下列选项中,合法的C语言关键字是_ (D)—A) VAR(far)C) integer (interrupt) B) cher(char) D) default9.以下错误的转义符是__(D)_oA)7' B)fC) 4\f D) t\80,10.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是—(B)—。

A)0 至255 B) 0 至65535C) —256 至255 D) -32768 至3276711?以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式了的C语言表达式是(A) oA) x/y*z B) x*(l/(y*z))C) x/y*l/z D) x/y/z12. w=l,x=2,y=3,z=4,a=5,b=6;则执行语句(a二w>x)&&(b=y>z);后,a,b 的值为______A) 1 和1 B) 0 和6C) 5 和0 D) 0 和013.__________________________________________________________________ 设x、y、t均为int型变量,则执彳亍语句:x=y=3;t=卄xll++y;后,y的值为_(C) ____________ 。

(word完整版)C语言考试题库及答案,推荐文档

(word完整版)C语言考试题库及答案,推荐文档

C 语言理论上机考试选择题部分(共200 题)1、下面程序的输出是___D ______#include<stdio.h>void main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D _______A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C 语言字符常量是_______ A ____ .A) '\t' B) "A" C) 65 D) A4、表达式: 10!=9 的值是________ D ___ .A) true B) 非零值C) 0 D) 15 、C 语言提供的合法的数据类型关键字是_ B ___ .A) Double B) short C) integer D) Char6、字符(char) 型数据在微机内存中的存储形式是__D__.A) 反码B) 补码C) EBCDIC 码D) ASCII 码7、C 语言程序的基本单位是_____ C _____ .A) 程序行B) 语句C) 函数D) 字符 &设int a=12,则执行完语句a+=a-=a*a后,a的值是___ D ___A) 552 B) 264 C) 144 D) -2649、执行下面程序中的输出语句后,输出结果是_ B__.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 1010 、下面程序的输出是____ B _____ .{int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 2411 、下面程序的输出的是 ____ C ___ .#include<stdio.h>void main(){int x=10,y=3;printf("%d\n",y=x/y);}A) 0 B) 1 C) 3 D) 不确定的值12、已知字母A 的ASCII 码为十进制的65,下面程序的输出是_____ A ____ .#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值13、若要求在if 后一对圆括号中表示a 不等于0 的关系,则能正确表示这一关系的表达式为_______ D__.A) a<>0 B) !a C) a=0 D) a14、以下程序的输出结果是____ D _____.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 915、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是____ D ____ .A) 1 B) 0 C) 4 D) 316、为表示关系x > y > z,应使用C语言表达式___A___.17、 C 语言中非空的基本数据类型包括_____ B ___ .A) 整型,实型,逻辑型B) 整型,实型,字符型#include<stdio.h> void main() A) (x>=y)&&(y>=z)C) (x>=y>=z)B) (x>=y)AND(y>=z)D) (x>=y) & (y>=z)C) 整型,字符型,逻辑型D) 整型,实型,逻辑型,字符型18、若x 和y 都是int 型变量,x=100,y=200, 且有下面的程序片段:printf("%d",(x,y)); 上面程序片段的输出结果是_______________________________ A___.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值19、阅读下面的程序#include<stdio.h> void main() { charch; scanf("%3c",&ch); printf("%c",ch);}如果从键盘上输入abc< 回车> 则程序的运行结果是__A ______________________ .A) a B) b C) c D) 程序语法出错20、阅读下面的程序#include<stdio.h> void main() {int i,j;i=010; j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是_____ D __ .A) 1,19 B) -1,19 C) 1,17 D) -1,1721、阅读下面的程序#include<stdio.h> void main(){int i,j,m,n; i=8;j=10; m=++i; n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_______ C ____ .A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10D) 9,10,9,1122、已知a=12, 则表达式a+=a-=a*=a 的结果是 ____ A__.A) 0 B) 144 C) 12 D) -26423、若已定义int a,则表达式a=10,a+10,a++的值是__B_.A) 20 B) 10 C) 21 D) 1124、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入是 ___ D .1 2 34567<回车>,则程序的运行结果A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4525、下面程序的输出结果是_____ D ___ .#include<stdio.h> void main(){int a=-1, b=4, k; k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,326、下面程序的输出结果是_____ A ___ .#include<stdio.h> void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,027、执行下面程序段后,输出结果是_____ A ___ .int a;int b=65536; a=b; printf("%d\n",a);A) 65536 B) 0 C) -1 D) 128、若有以下定义和语句:int a=010, b=0x10, c=10; printf("%d,%d,%d\n",a,b,c); 则输出结果是____ B ____ .A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1029、已知有double 型变量x=2.5,y=4.7, 整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________ B ____ .A) 2.4 B) 2.5 C) 2.75 D) 030 、若已定义x 和y 是整型变量,x=2;, 则表达式y=2.75+x/2 的值是 ___ C ___ .A) 5.5 B) 5 C) 3 D) 4.031、以下程序的输出结果是______ D ___ .#include<stdio.h> void main(){int a=12, b=12;printf("%d,%d\n",--a,++b);}A) 10,10 B) 12,12 C) 11,10 D) 11,1332 、设有以下语句:int x=10;x+=3+x%(3), 则x 的值是. _____ A _____A) 14 B) 15 C) 11 D) 1233、若d 为double 型变量,则表达式d=1,d+5,d++ 的值是___ D__.A) 1 B) 6.0 C) 2.0 D) 1.034、表达式5!=3 的值是____ D ___ .A) T B) 非零值C) 0 D) 135、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a 的值__________ A ____ . A) 0 B) 1 C) 12 D) 6D) C 语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符_____ C __ .A) 必须为字母B) 必须为下划线C) 必须为字母或下划线D) 可以是字母,数字或下划线中的任意一种39、设有说明:char w; int x; float y; double z; 则表达式: w*x+z-y 值的数据类型是___D ____ .A) float B) char C) int D) double40、一个C 语言的执行是从_____ A _____ .A) 本程序的主函数开始,到本程序的主函数结束B) 本程序的第一个函数开始,到本程序的最后一个函数结束C) 本程序的主函数开始,到本程序的最后一个函数结束D) 本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系10<a<15的 C 语言表达式是___ A ___ .A) 10<a<15 B) a==11||a==12||a==13||a==14 C) a>10&&a<15 D) !(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_______ C ___ .#include <stdio.h>void main( ) { int a=5,b=60,c;if (a<b) {c=a*b;printf("%d*%d=%d\n",b,a,c);}else{c=b/a;printf("%d/%d=%d\n",b,a,c);}}A) 60/5=12 B) 300 C) 60*5=300 D) 12 43、如果 c 为字符型变量,判断 c 是否为空格不能使用___ A ___ .( 假设已知空格ASCII 码为32)A) if(c=='32') B) if(c==32)36、若有定义int x=3,y=2 和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b 的值是__D__.A) 0 B) 2 C) 1.5 D) 137、在C 语言中,以下叙述不正确的是_____ A ___ .A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C 程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同44、运行下面程序时,若从键盘输入"3,5<CR>" ,则程序的输出结果是____ D___ .#include <stdio.h>void main( ){int x,y;scanf("%d,%d",&x,&y);if (x==y) printf("x==y");else if (x>y) printf("x>y");else printf("x<y");}A) 3<5 B) 5>3 C) x>y D) x<y45 、运行下面程序时,若从键盘输入数据为"6,5,7<CR>" ,则输出结果是C___.C) if(c=='\40') D) if(c==' ')#include <stdio.h>void main( ){ int a,b,c; scanf("%d,%d,%d",&a,&b,&c);if (a>b)if (a>c) printf("%d\n",a);else printf("%d\n",c);elseif (b>c) printf("%d\n",b);else printf("%d\n",c);}A) 5 B) 6 C) 7 D) 不定值46、执行下面程序时,若从键盘输入"2<CR>" ,则程序的运行结果是_____ A ____ .#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9') k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10; printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1047、运行下面程序时,从键盘输入"2.0<CR>" ,则输出9士里阜 D结果是___B ____ .#include <stdio.h>void main( ){ float a,b;scanf("%f",&a);if (a<0.0) b=0.0;else if ((a<0.5) && (a!=2.0)) b=1.0/(a+2.0);else if (a<10.0) b=1.0/2;else b=10.0;printf("%f\n",b);}A) 0.000000 B) 0.500000C) 1.000000 D) 0.25000048、执行下面程序后,运行结果是_____ A ___ .#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=149、运行下面程序时,从键盘输入"12,34,9<CR>" ,则输出结果是___A___.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值50、运行下面程序时,从键盘输入字母H,则输出结果是____ C___.#include <stdio.h>void main( ){ char ch;ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!51、执行下列程序段后的输出结果是 ________ A __ .int x=1,y=1,z=1; x+=y+=z;printf("%d\n",x<y?y:x); A) 3 B) 2 C) 1D) 452、设 ch 是 char 型变量 ,值为 'A', 则表达式 ch=(ch>='A' && ch<='Z')?ch+32:ch 的值是 __B___. A) Z B) aC) zD) A53、下面程序的输出结果是 _____ C #include <stdio.h> void main( ){ int x=8,y=-7,z=9; if (x<y)if (y<0) z=0; else z-=1; printf("%d\n",z);}A) 8 B) 154、运行下面程序时 ,若从键盘输入 "5 <CR>", 则程序的 输出结果是 _____________ B ___. #include <stdio.h> void main( ){ int a ; scanf("%d",&a); if (a++>5)printf("%d\n",a); else printf("%d\n",a--) ;}A) 7 B) 6 C) 5 D) 455、运行下面程序时,若从键盘输入 "3 ,4 <CR>" ,则 程序的输出结果是 ____ B___. #include <stdio.h> void main( ){ int a,b,s; scanf("%d,%d",&a,&b); s=a; if (s<b) s=b; s=s*s; printf("%d\n",s) ;}A) 14 B) 16 C) 18D) 20#include <stdio.h> void main( ) { int x=0,y=1,z=0; if (x=z=y)x=3; printf("%d,%d\n",x,z);}A) 3,0B) 0,0C) 0,1 D) 3,157、假定等级和分数有以下对应关系: 等级:A 分数:85〜100 等级:B 分数:60〜84 等级: C分数: 60 以下对于等级 grade 输出相应的分数区间,能够完成该功 能的程序段是 ________ D ___ . A) switch (grade){case 'A':printf("85--100\n"); case 'B':printf("60--84\n");case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} B) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} C) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break;case 'C':printf("60 以下 \n"); default:printf(" 等级错误 !\n");} D) switch (grade){case 'A':printf("85--100\n");break; case 'B':printf("60--84\n");break;case 'C':printf("60 以下 \n");break; default:printf(" 等级错误 !\n");}58、能够完成如下函数计算的程序段是__B厂-1x<0 y=T 0x=0 L1x>056、下列程序的执行结果是 ______ DA) y=1;B) if (x>=0)Bye_Bye!C) 9D) 0if (a) d=d-10; else if(!b) if (!c) x=15; else x=25; printf("d=%d\n",d);}A) d=20B) d=10C) d=15D) 2562、有如下程序 : #include <stdio.h> void main( ){ int a=2,b=-1,c=2; if (a<b) if (b<0) c=0; else c++; printf("%d\n",c);}该程序的输出结果是 ___C _____ . A) 0 B) 1 C) 2 D) 363、下列程序执行后的输出结果是 ______ B __ . #include <stdio.h> void main( ){ int x,y=1,z; if ((z=y)<0) x=4; else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息64、有如下程序 #include <stdio.h> void main( ){ 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) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=265、下面程序的输出结果是 _____ C ___ . #include <stdio.h>if(x!=0)if(x>0) y=1; else y=0; C) y=0;if (x>=0)if (x>0) y=1; else y=-1;if(x>0) y=1; else y=0; elsey=-1;D) y=-1;if (x>0) y=1; else y=0;59、有如下程序 #include <stdio.h> void main( ) { float x=5.0,y; if(x<0.0) y=0.0; else if (x<10.0) y=1.0/x; else y=1.0; printf("%f\n",y);}该程序的输出结果是 C ____ .A) 0.000000 B) 0.50000 C) 0.200000D) 1.00000060、以下程序的执行结果是 ___B _____ . #include <stdio.h> void main( ) { int x=1,y=0; switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break; }case 2:printf("third\n");}}A) firstB) first second third C) firstD) secondthird61、以下程序的执行结果是 _____ A #include <stdio.h> void main( ){ int a,b,c,d,x; a=c=0; b=1; d=20;void main( ){ int a=-1,b=1,k; if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);else printf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 066、假定w、x、y、z、m 均为int 型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z; 则该程序段执行后,m 的值是____________ D __________ . A) 4 B) 3 C) 2 D) 167、以下程序的输出结果是___D ______ .main( ) { int a=100;if (a>100) printf("%d\n",a>100); elseprintf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 168、若执行下面的程序从键盘上输入是. B#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);} A) 11 B) 10 C)969、以下程序输出结果是______ D ____#include <stdio.h>void main( ){ int m=4;if (++m>5) printf("%d\n",m--); else printf("%d\n",--m);70、若执行下面的程序从键盘上输入5,则输出结果是#include <stdio.h>void main( ){int x;scanf("%d",&x);if (x++>5) printf("%d\n",x);else printf("%d\n",x--);}A) 7 B) 6 C) 5 D) 471、以下程序段运行结果是_____ A___ .int x=1,y=1,z=-1; x+=y+=z; printf("%d\n",x<y?y:x); A) 1 B) 2 C) 4 D) 不确定的值72、有以下程序#include <stdio.h> void main( ) { int a,b,c=246;a=c/100%9; b=(-1)&&(-1); printf("%d,%d\n",a,b);}输出结果是___ A ____ .A) 2,1 B) 3,2 C) 4,3 D) 2,-173、运行下面程序时,若从键盘输入数据为"123" ,则输出结果是___C ___ .#include "stdio.h"void main(){ int num,i,j,k,place; scanf("%d",&num); if (num>99)place=3;else if(num>9)place=2;elseplace=1; i=num/100; j=(num-i*100)/10;k=(num-i*100-j*10); switch (place) { case 3:printf("%d%d%d\n",k,j,i); break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,174、执行下列程序后的输出结果是___D _____ .#include <stdio.h> void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 175、以下条件表达式中能完全等价于条件表达式x 的是 __B___.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)76、若运行下面程序时,给变量a 输入15,则输出结果是___A___.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 109,则输出结果D) 8A) 7 B) 6 C) 5 D) 477、运行下面程序后,输出是___D___.#include <stdio.h>void main( ){ int k=-3;if (k<=0) printf("****\n");else printf("####\n")}A) ####B) ****C) ####****D) 有语法错误不能通过编译78、执行下面程序的输出结果是______ C___ .#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####79、为了避免嵌套的if-else 语句的二义性,C 语言规定else 总是与___C___ 组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if80、设x 、y 、z 、t 均为int 型变量,则执行以下语句后,t 的值为___ C ____ .x=y=z=1; t=++x || ++y && ++z;A) 不定值B) 4 C) 1 D) 081、以下程序段 C ________ .x=-1;do{x=x*x;} while (!x);A) 是死循环B) 循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B _____ .int x=0,s=0;while (!x!=0) s+=++x; printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次83、下面程序段的输出结果是____ C ___ .x=3; do { y=x--;if (!y) {printf("*");continue;} printf("#");} while(x=2);A) ## B) ##* C)死循环D)输出错误信息84、下面程序的运行结果是 B . #include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0); printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,985、下面程序段的运行结果是____ B _____ .int n=0;(n * n )/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 请填空,完成求n 的功能。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

C语言自测题及答案.docx

C语言自测题及答案.docx

自测题一、选择题:1.以下叙述中正确的是()。

A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识別执行C) C是近英语的自然语言和数学语言为语言的表达形式D)C语言出现最晩,具有其他语言的一•切优点2.以下叙述中不正确的是()0A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)函数是C程序的基木组成单位D)分号是C语句之间的分隔符,不是语句的一部分3.算法具有五个特性,以下不属于算法特性的是()oA)有穷性B)简洁性C)可行性D)确定性4.以下()组中的标识符都是合法的用户标识符。

A)3ab, A_10, st B)class,入1, grade C)printf, TNT, charl D)b3, a, unsigned5.C语言中的基本数据类型包括()oA)整型、实型(浮点型)、逻辑型B)整型、实型(浮点型)、字符型C)整型、字符型、逻辑型D)字符型、实型(浮点型)、逻辑型6.以下选项屮,均是合法整型常量的选项是()。

A)123, Oxffff, 0123 B)0xabc, 018, 0x123 C)01a, 123, 012, Oxef D)0x22b, 3e5, 0167.若有定义:float a二3.0, b二4. 0, c=5. 0;则表达式 1 /2*(a+b+c)的值为()。

A) 6.0 B)6 C)0.0 D)无答案&若有定义和语句:int s, p;s=p=5;P二s++;则执行语句后p的值是()oA)0 B)5 07 D)69.以下选项中,与k=n++完全等价的表达式(即执行后k,n及表达式的值完全相同)是()。

A) k=n, n=n+l B)n=n+l, k二n C)k=++n D)k+二n+110.以卜程序的输出结果是()o#include<stdio. h>void main (){int a二20, b=10;A) 30, %d B)30, 10 C)30,%10 D)以上答案均不正确printf ("%d,%%d\rT, a+b, a-b);11.下列程序的运行结果是()。

C语言基础练习题及答案.doc

C语言基础练习题及答案.doc

《C语言程序设计》习题篇第一章c语言基础知识i. 1选择题1.以下不是C语言的特点的是(D)oA、语言简洁紧凑B、能够编制出功能发杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2. 下列字符序列中,不可用作C语言标识符的是(B )。

A. abc 123B. no. 1C- _123_ D. _ok3. 正确的C语言标识符是(A)。

A. _buy_2B. 2_buyC. ?_buyD. buy?4. 请选出可用作C语言用户标识符的一组标识符(C)oA. voidB. a3_b3C. ForD. 2adefine _123 -abc DO5.WORD IF下列符号中,不属于转义字符的是(B)oCase sizeof6. A. \\ B. \0xAAC.不属于C语言关键字的是(D)。

\t D. \07. A. int B. breakC.是C语言提供的合法关键字的是(B )owhile D. character8. A. Float B. signedC.以下不能定义为用户标示符的是()ointeger D. Char9. A. scanf B. VoidC.一个C程序是由()o_3com_ D. intA.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10.C语言程序的基本单位是()0A.程序行B.语旬C.函数D.字符11.下列说法中,错误的是()0A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个1门1车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外D. A.datD. 1.3ED.非法的常量D. '\abc'D.''D. x2a2A.short a=l-Je-l;C. long do=0xfdaL; B.double b=l+5e2.5;D. float 2 and=l-e-3;C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()oA.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分13.C编译程序是()oA.C程序的机器语言版木B.一组机器语言指令C.将C源程序编译成目标程序D.由制造厂家提供的一套应用软件14.以下选项中,合法的用户标识符是()。

C语言习题有答案.docx

C语言习题有答案.docx

第一章习题—、选择题1.c语言的主要特点有哪些?(多选)A.简洁、紧凑,使用方便、灵活,易于学习和应用。

B.C语言是面向结构化程序设计的语言。

C.C语言允许直接对位、字节和地址进行操作。

D.数据类型丰富。

E.C语言生成的目标代码质量高。

答案:ABCDE2.C语言程序由什么组成?(单选)A.子程序B.主程序和子程序C.函数D.过程答案:C3.源程序要正确地运行,必须要有什么函数?(单选)A.printf函数B.自定义的函数C. main函数D.不需要函数答案:C4.一个C程序的执行是从_____ 。

A.本程序的main函数开始,到main函数结朿B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束答案:A5.以下叙述正确的是:A.在C程序中,main函数必须位于程序的最前面B.C程序的每行屮只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误答案:C6.以下叙述不正确的是。

A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面D7.C语言规定:在一个源程序中,main函数的位置。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后C8.一个C语言程序是由A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成B第二章习题一、选择题1.指出下面合法的标识符:(多选)A. 3abB. intC. ABCD. a_3E. sum. aF.#abcG. _stu2H. abc f答案:CDG2.指出下面哪些是关键字:(多选)A. charB. abcC. printfD. IntE. floatF. defineG. includeH. PI答案:AE3.指出下面哪些是合法的用户定义的标识符?(多选)P-S B. putl 1 C. double D. 908 E. *parF. sheep!G. wind II. x y答案:BDG4.C语言的基本类型哪些:(多选)A.整型B.枚举型C.数组型D.指针型E.字符型F.构造型G.实形H.空类型答案:ABEG5.这段程序屮的常量有:(多选)#define PI 3. 14void mdin(){ int sum;sum = 10 + 15;printf (z/sum=%d\n", sum);printf(^result is 25\rT);}这段程序中常量有:A. 10B. sumC. 15D. 25E. mainF. PI答案:ACF6.C语言屮整形常量按进制划分,有以下几种:(多选)A.十六进制常量B.十进制常量C.八进制常量D.二进制常量答案:ABC7.75的十六进制写法为八进制写法为0x75的八进制写法为十进制写法为075的十进制写法为—,十六进制写法为答案:0x4b 0113 0165 117 61 0x3d&如果要把常量327存入变量a中,a可以定义成哪些类型?(多选)A. intB. charC. longD. float答案:ACD9.下面哪些写法是对的,而且是常量?(多选)A. 125B. - 456C. 1.25e20D. 'AB'E.E6F. 0238G. OxabcdefH. 〃\n\\\'\123〃答案:ABCGH10.下面哪个表达式的值为4.(单选)A. 11/3B. 11.0/3C. (float) 11/3D. (int) (11.0/3+0.5)答案:D11.已知整型变量a=6, b=7, c=l,则下面表达式的值为多少?a+3 ___(b-a*3)/5 —c*(a+b)+b*(c+a) ___3.2* (a+b+c)答案:9 -2 62 44.812.己知整型变量a=6,字符型变量ch二'A',浮点数变量f=2. 1,则下面表达式的值为多少?(提示:'A'的ASCII码为65)a+4. 5ch+a+f(a+30)/5 —(a+30)/5.0 __答案:10.5 73. 1 7 7.213.指出下面错误的表达式:(多选)A. a+b二5B. 56二a 11C. i二i++D. 5. 6+6. 2%3. 1E. 12F. a=5, b=6, c=7答案:ABD14.若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?(多选)A. f二(f*100+0. 5)/100. 0B. i二f*100+0. 5, f二i/100. 0;C. f=(int) (f*100+0. 5)/100.0;D. f=(f/100+0. 5)*100.0;答案:BC15.下面哪些是非法的C语言转义字符?(多选)A.,\t,B. '\08'C. '\0xaf'D. ' \\'答案:BC16.若有以下说明语句:(单选)char s- \\\092';则下面哪一项是正确的.A.使s的值包含2个字符B.说明语句不合法C.使s的值包含6个字符D.使s的值包含4个字符答案:B17.请从下面的选项中选出正确的C语言的转义字符。

C语言试题(答案带解析)

C语言试题(答案带解析)

C语言试题(答案带解析)题目:编写一个C语言程序,实现以下功能:1. 输入一个字符串,长度不超过100个字符。

2. 统计并输出字符串中字母、数字、空格和其他字符的数量。

3. 删除字符串中所有的空格,并输出处理后的字符串。

4. 查找字符串中第一次出现字母 'a' 的位置,并输出位置(位置从0开始计算)。

5. 检查字符串是否为回文(忽略大小写和空格),如果是,输出"Yes",否则输出"No"。

试题代码如下:```c#include <stdio.h>#include <string.h>#include <ctype.h>int main() {char str[101];int alpha_count = 0, digit_count = 0,space_count = 0, other_count = 0;int i, a_position = -1;int len, is_palindrome = 1;// 输入字符串printf("Enter a string (up to 100 characters): ");fgets(str, 101, stdin);// 删除换行符len = strlen(str);if (str[len - 1] == '\n') {str[len - 1] = '\0';len--;}// 统计字符数量for (i = 0; i < len; i++) {if (isalpha(str[i])) {alpha_count++;if (str[i] == 'a') {a_position = i;}} else if (isdigit(str[i])) {digit_count++;} else if (isspace(str[i])) {space_count++;} else {other_count++;}}// 输出字符数量printf("Letters: %d\n", alpha_count); printf("Digits: %d\n", digit_count); printf("Spaces: %d\n", space_count); printf("Others: %d\n", other_count); // 删除空格并输出处理后的字符串char new_str[101];int j = 0;for (i = 0; i < len; i++) {if (!isspace(str[i])) {new_str[j++] = str[i];}}new_str[j] = '\0';printf("String without spaces: %s\n", new_str);// 查找字母 'a' 的位置if (a_position != -1) {printf("First occurrence of 'a' is at position: %d\n", a_position);} else {printf("'a' not found in the string.\n");}// 检查字符串是否为回文int start = 0, end = j - 1;while (start < end) {if (tolower(new_str[start]) !=tolower(new_str[end])) {is_palindrome = 0;break;}start++;end--;}if (is_palindrome) {printf("Yes\n");} else {printf("No\n");}return 0;}```解析:1. 程序首先通过 `fgets` 函数读取用户输入的字符串,并检查是否有多余的换行符。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
30.下述对C语言字符数组的描述中正确的是(C)。
A.任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间
A. int m[10]=(0,0,0,0) ; B. int m[10]={ };
C. intm[ ]={0}; D. int m[10]={10*2};
5.若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c)。
A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1
C. int s="string"; D. char a[]={0,1,2,3,4,5};
33.下列语句中,不正确的是(C)。
A. static char a[2]={1,2}; B. static char a[2]={ '1', '2'};
C. static char a[2]={ '1', '2', '3'}; D. static char a[2]={ '1'};
printf("\n");
}
A. 10000 B. 10010 C. 00110 D. 10100
13.以下程序运行后,输出结果是(A)。
main()
{
int a[10], a1[ ]={1,3,6,9,10}, a2[ ]={2,4,7,8,15},i=0,j=0,k;
for(k=0;k<4;k++)
main()
{
char ch[7]={ "65ab21"};
inti,s=0;
for(i=0;ch[i]>= '0'&&ch[i]<= '9';i+=2)
s=10*s+ch[i]- '0';
printf("%d\n",s);
}
A. 12ba56 B. 6521 C. 6 D. 62
38.运行下面的程序,如果从键盘上输入:123<空格>456<空格>789<回车>,输出结果是(D)。
A. 4个字节B. 5个字节C. 6个字节D. 7个字节
36.若有定义和语句:
char s[10];
s="abcd";
printf("%s\n",s);
则结果是(以下└┘代表空格)(D)。
A.输出abcd B.输出a C.输出abcd└┘└┘└┘└┘D.编译不通过
37.下面程序运行后,输出结果是(C)。
23.若二维数组c有m列,则计算任一元素c[i][j]在数组中的位置的公式为(A)。
(假设c[0][0]位于数组的第一个位置)
A. i*m+j B. j*m+i C. i*m+j-1 D. i*m+j+1
24.若有以下定义语句,则表达式“x[1][1]*x[2][2]”的值是(B)。
float x[3][3]={{1.0,2.0,3.0},{4.0,5.0,6.0}};
17.若说明:int a[2][3];则对a数组元素的正确引用是(C)。
A. a(1,2) B. a[1,3] C. a[1>2][!1] D. a[2][0]
18.若有定义:int b[3][4]={0};则下述正确的是(D)。
A.此定义语句不正确
B.没有元素可得初值0
C.数组b中各元素均为0
D.数组b中各元素可得初值但值不一定为0
19.若有以下数组定义,其中不正确的是(D)。
A. inta[2][3];
B int b[][3]={0,1,2,3};
C. intc[100][100]={0};
D. int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
20.若有以下的定义:int t[5][4];能正确引用t数组的表达式是(C)。
A. a+(i++) B. &a[i+1] C. a+i D. &a[++i]
9.执行下面的程序段后,变量k中的值为(A)。
int k=3, s[2];
s[0]=k; k=s[1]*10;
A.不定值B. 33 C. 30 D. 10
10.以下程序的输出结果是(C)
main()
{
inti, a[10];
4.1选择题
1.以下关于数组的描述正确的是(c)。
A.数组的大小是固定的,但可以有不同的类型的数组元素
B.数组的大小是可变的,但所有数组元素的类型必须相同
C.数组的大小是固定的,所有数组元素的类型必须相同
D.数组的大小是可变的,可以有不同的类型的数组元素
2.以下对一维整型数组a的正确说明是(D)。
A.int a(10); B. int n=10,a[n];
k=5;
for (i=0;i<10;i++) a[i]=i;
for (i=0;i<3;i++) p[i]=a[i*(i+1)];
for (i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A. 20 B. 21 C. 22 D. 23
15.以下程序运行后输出结果是(D)。
A. 123,456,789 B. 1,456,789
C. 1,23,456,789 D. 1,23,456
main()
{
char s[100]; int c, i;
scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
28.若定义如下变量和数组:则下面语句的输出结果是(C )。
inti;
int x[3][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) printf("%d",x[i][2-i]);
A. 1 5 9 B. 1 4 7 C. 3 5 7 D. 3 6 9
29.下述对C语言字符数组的描述中错误的是(C)。
main()
{
inti,a[10],x,flag=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for(i=0;i<10;i++) if _______ {flag=i+1; break;}
printf("%d\n", flag);
}
A. x!=a[i] B. !(x-a[i]) C. x-a[i] D. !x-a[i]
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A. 258 B. 741 C. 852 D. 369
11.以下程序运行后,输出结果是(D)。
main()
{
int n[5]={0,0,0},i,k=2;
for(i=0;i<k;i++) n[i]=n[i]+1;
if(a1[i]<a2[j]) a[k]=a1[i++];
else a[k]=a2[j++];
for(k=0;k<4;k++) printf("%d",a[k]);
}
A. 1234 B. 1324 C. 2413 D. 4321
14.以下程序运行后,输出结果是(B)。
main()
{
inti,k,a[10],p[3];
C.int n; D. #define SIZE 10
scanf("%d",&n); int a[SIZE];
int a[n];
3.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
4.以下对一维数组m进行正确初始化的是(C)。
printf("%d\n",n[k]);
}
A.不确定的值B. 2 C. 1 D. 0
12.以下程序运行后,输出结果是(B)。
main()
{
int y=18,i=0,j,a[8];
do
{ a[i]=y%2; i++;
y=y/2;
} while(y>=1);
for(j=i-1;j>=0;j--) printf("%d",a[j]);
main( )
{
int n[3],i,j,k;
for(i=0;i<3;i++)
n[i]=0;
k=2;
for (i=0;i<k;i++)
相关文档
最新文档