c语言练习题01
C语言程序设计 – 第 01 章课后习题
一、二、三、、选择1.2.3.4.5.、填空1.2.3.4.5.、算法1.2.1. 以下2. 在一3. 以下4. 结构5. 在程1. 一个2. 3. 算法4. 结构5. 结构算法设1. 求三2. 选择题以下叙A. B. C.D.(句在一个A. B. C.D.(程序以下叙A. B. C.D.(结构化A. B. C.D.(在程序A. B. C.D.填空题一个简一个算法的结构化结构化算法设计求三个求1+2择题 以下叙述 C 语言C. D. (解释句,另外 必须 可以C. 必须D. 必须(解释程序也就以下叙述 C 语言C. D. 同一(解释结构化程 程序 程序C. 程序D. 程序(解释在程序设 不限 减少C. 程序D. 程序空题 一个简单C 算法的特结构化程结构化程法设计题求三个数1+2+3下叙述不正一个语言程在一个解释:一个必须在程可以在任必须在程必须在系解释:序也就执下叙述中正在语言程构成同一个解释:构化程序设程序的规程序的易程序的执程序的可解释:程序设计时不限制减少或取程序越短程序结构个简单的语言法的特性是构化程序由构化程序设计题三个数中的+2+3+述不正确个C 语言语言程序C 语言程个C 语言:另外被C 须在程序以在任意须在程序须在系统:一个也就执行述中正确C 语言程语言程序成C 语言一个:程序设计序的规模序的易读序的执行序的可移:结构设计时限制got 少或取消序越短越序结构应单的语言程序特性是程序由程序设计 数中的最+3+不正确的语言程言程序的语言程序语言程C 语言程外被“程序中在程序的在任意地在程序的在系统调一个就执行完了中正确的语言程序言程序中语言程C 语言main 序设计主的规模的易读性的执行效的可移植结构化程计时,或取消注越短越好结构应有C 语言言程序是性是 有穷序由 顺序序设计方中的最大…正确的是语言程序程序的基本言程序中语言程序语言程序/*”序中,程序的最任意地方程序的最系统调用个C 程序行完了正确的是言程序中程序中有输语言程序语言程ain 函数设计主要强规模易读性执行效率可移植性构化程序,应采纳goto 语句取消注释短越好构应有助语言程程序是从顺序结设计方法的的最大者+100的是(言程序可的基本组程序中言程序必言程序中”和“,序的最后面意地方序的最前面统调用的库程序总完了)的是(程序中,中有输入言程序的语言程序函数在一主要强调读性行效率移植性化程序设应采纳的语句的消注释行越好应有助于读语言程序至序是从有穷性顺序结构方法的主大者。
c语言习题1-5章
C语言习题1-5章单项选择1.若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是()。
A:(exp==0)B:(exp!=0)C:(exp==1)D:(exp!=1)答案:B2.putchar函数可以向终端输出一个()。
A:整型变量表达式值B:实型变量值C:字符串D:字符或字符型变量值答案:D3.C语言中运算对象必须是整型的运算符是()。
A:%=B:/C:=D:〈=答案:A4.以下数据中,不正确的数值或字符常量是()。
A:8.9e1.2B:10C:0xff00D:82.5答案:A5.一个C语言程序是由()。
A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B6.经过以下语句定义后,表达式z+=x>y?++x:++y的值为()。
int x=1,y=2,z=3;A:2B:3C:6D:5答案:C7.若int a=2,则执行完表达式a-=a+=a*a后,a的值是()。
A:-8B:-4C:-2D:0答案:D8.以下叙述中错误的是()。
A:可以通过typedef增加新的类型B:可以用typedef将已存在的类型用一个新的名字来代表C:用typedef定义新的类型名后,原有类型名仍有效D:用typedef可以为各种类型起别名,但不能为变量起别名答案:A9.结构化程序由三种基本结构组成,三种基本结构组成的算法()。
A:可以完成任何复杂的任务B:只能完成部分复杂的任务C:只能完成符合结构化的任务D:只能完成一些简单的任务答案:A10.以下关于运算符优先顺序的描述中正确的是()。
A:关系运算符<算术运算符<赋值运算符<逻辑运算符B:逻辑运算符<关系运算符<算术运算符<赋值运算符C:赋值运算符<逻辑运算符<关系运算符<算术运算符D:算术运算符<关系运算符<赋值运算符<逻辑运算符答案:C11.下列程序段的输出结果为()。
C语言全部考试系统题库含答案
目录目录 (1)单元练习题一 C语言基础知识 (3)一、判断题 (3)二、单项选择题 (4)三、读程序选择题 (7)四、程序填空题 (8)五、编程题...................................... 错误!未定义书签。
单元练习题二 C语言程序结构.. (9)一、判断题 (9)二、单项选择题 (9)三、读程序选择题............................. 错误!未定义书签。
四、程序填空题 (17)五、编程题................................... 错误!未定义书签。
单元练习题三数组.. (21)一、判断题 (21)二、单项选择题 (22)三、读程序选择题................................ 错误!未定义书签。
四、程序填空题 (28)五、编程题...................................... 错误!未定义书签。
单元练习题四函数.. (33)一、判断题 (33)二、单项选择题 (34)三、读程序选择题 (40)四、程序填空题.................................. 错误!未定义书签。
五、编程题...................................... 错误!未定义书签。
单元练习题五预处理................................. 错误!未定义书签。
一、判断题................................... 错误!未定义书签。
二、单项选择题............................... 错误!未定义书签。
三、读程序选择题................................ 错误!未定义书签。
四、程序填空题.................................. 错误!未定义书签。
C语言基础选择题100道(附答案)01
C语⾔基础选择题100道(附答案)011. 以下选项中可⽤作 C 语⾔合法⽤户标识符的是A) 2aB)voidC)-abcD) _123答案:D2. 以下选项中合法的 C 语⾔赋值语句是A)++i;B)a=b=34C)a=3,b=9D)k=int( a+b );答案:A3. 有以下程序段,其中的变量已定义为 int 类型sum = pad = 5; pAd = sum++, pAd++, ++pAd;printf( “%d\n”, pad );程序段的输出结果是A)4B)5C)6D)7答案:B4. sizeof( double ) 是A)⼀个整型表达式B)⼀个函数调⽤C)⼀个双精度表达式D)不合法的表达形式答案:A5. 有以下程序#include <stdio.h>main(){int a=2, c=5;printf(“a=%%d,b=%%d\n”, a, c );}程序运⾏后的输出结果是A)a=%d,b=%dB)a=%2,b=%5C)a=%%d,b=%%dD)a=2,b=5答案:A6. 有以下程序#include <stdio.h>#include <math.h>main(){int a=1, b=4, c=2;double x=10.5, y=4.0, z;z = ( a+b )/c + sqrt( y ) * 1.2 / c + x;printf("%f\n", z);}程序运⾏后的输出结果是程序运⾏后的输出结果是A)13.700000B)14.000000C)15.400000D)14.900000答案:A7. 若有定义语句:int a=12;,则执⾏语句:a+= a-= a*a;后,a的值是A)264B)552C)144D)-264答案:D8. C 语⾔程序的模块化是通过以下哪个选项实现的A)变量B)语句C)函数D)程序⾏答案:C9. A)1.0/a/b/cB)1/(a b c)C)1.0/a b cD)1/a/b/(double)c答案:A10. 有以下程序#include <stdio.h>main(){int x=010, y=10;printf("%d,%d\n", ++x, y–);}程序运⾏后的输出结果是A) 10,9B)11,10C)010,9D) 9,10答案:D11. 以下选项中叙述正确的是A)C 语⾔的标识符可分为关键字、预定义标识符和⽤户标识符三类B)C 语⾔的标识符可分为语句、变量和关键字三类C)C 语⾔的标识符可分为函数名、变量和预定义标识符三类D)C 语⾔的标识符可分为运算符、⽤户标识符和关键字三类答案:A12. 以下选项中叙述正确的是A)函数体必须由 { 开始B)C 程序必须由 main 语句开始C)C 程序中的注释可以嵌套D)C 程序中的注释必须在⼀⾏完成答案:A13. 以下选项中叙述正确的是A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构B)C 语⾔源程序不编译也能直接运⾏C)使⽤ N-S 流程图不能描述复杂算法D)计算机能够直接运⾏ C 语⾔源程序,不必进⾏任何转换D)计算机能够直接运⾏ C 语⾔源程序,不必进⾏任何转换答案:A14. 以下选项中叙述正确的是A)使⽤三种基本结构就可以实现任何复杂算法B)只要程序包含了三种基本结构中的任意⼀种,就是结构化程序C)程序语法错误要在运⾏时才能发现D)可运⾏ C 语⾔程序不需要包含 main()函数答案:A15. 以下选项中,合法的 C 语⾔常量是A) "\2.0B)‘C++’C) 1.234D)2Kb答案:C16. 以下选项中,合法的 C 语⾔实数是A).2e0B)3.1e0.4C)E13D)7.12E答案:A17. 设 a,b,c 是整型变量且均已赋值,则以下选项中错误的是A)a = (b = 3) = 1;B)a = (b = 2) + c;C)a = b = c + 10;D)a = 1 + (b = c = 2);答案:A18. 有如下程序#include <stdio.h>main(){int x = 072;printf("%d\n", x+1);}程序运⾏后的输出结果是A)72B)73C)115D)59答案:D19. 以下选项中叙述正确的是A)C 程序中的语句要经过编译才能转换成⼆进制机器指令B)算法需要包含所有三种基本结构C)有些算法不能⽤三种基本结构来表达D)简单算法的操作步骤不能超过 20 步答案:A20. 以下选项中叙述正确的是A)复杂任务可以分解成简单⼦任务B)C 语⾔程序中的所有函数必须保存在同⼀个源⽂件中C)全部三种基本结构都包含的才是结构化程序D)C 语⾔程序可以定义多个不同内容的 main 函数答案:A21. 以下选项中,合法的数值型常量是A) 092B)“A”B)“A”C) 3.1415D)0xDH答案:C22. 以下选项中,合法的实数是A) E1.3B) 4.5E2C)7.11ED)1.2E1.2答案:B23. 若有定义 int a, b, c; 以下选项中的赋值语句正确的是A)a = (b = c) + 1;B)(a = b) = c = 1;C)a = (b == c) = 1;D)a + b = c;答案:A24. 有如下程序#include <stdio.h>main(){int x = 0x13;printf("%d\n", x+1);}程序运⾏后的输出结果是A)13B)14C)12D)20答案:D25. 以下叙述中错误的是A)书写风格良好的程序执⾏效率⾼B)书写风格良好的程序易读性好C)C 程序可以在⼀⾏上写多条语句D)C 程序允许将⼀条语句分写在多⾏上答案:A26. 以下选项中不能正确表⽰数值 10000 的实型常量是A)1.0E4.0B)1.E4C)10E3D)1.0e4答案:A27. 设有定义:int a=0,b=1,c=1;以下选项中,表达式值与其它三个不同的是A) a=b=cB) b=a= =cC)a=c= =bD)c=a!=c答案:B28. 设有两⾏定义语句:int scanf;float case;则以下叙述正确的是A)第 1 ⾏语句不合法B)两⾏定义语句都合法C)第 2 ⾏语句不合法D)两⾏定义语句都不合法答案:C29. 设有定义:double x=2.12;,以下不能完整输出变量 x 值的语句是A)printf(“x=%5.0f\n”,x);B)printf(“x=%f\n”,x);C)printf(“x=%lf\n”,x);D)printf(“x=%0.5f\n”,x);答案:A30. 设有定义:int a,b; float x; ,则以下选项中对语句所作的注释叙述错误的是A)scanf("%d%d%f",&a,&b); /* 多余的格式符%f 完全不起作⽤ /B)scanf("%d%d",&a,&b,&x); / 多余的输⼊项不能获得输⼊数据 /C)scanf("%d%f%d",&a,&b,&x); / 输⼊项与格式符类型不匹配,变量 b 和 x 得不到正确的输⼊数据 /D)scanf(“Input:%d%d”,&a,&b); / 格式串中允许加⼊格式符以外的字符串 */答案:A31. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是A)三种基本结构不可以嵌套使⽤B)顺序结构是按语句在程序中的先后顺序逐条执⾏,没有分⽀,没有转移C)选择结构是根据条件决定执⾏不同分⽀中的语句D)循环结构是根据条件决定是否重复、重复执⾏多少次循环体语句答案:A32. 以下能正确表述算式 sin(2πr+30°)的 C 语⾔表达式是A)sin(23.14r+3.1430/180.0)B)sin(2πr+ 30 )C)sin(23.14r+ 30 )D)sin(23.14r+303.14/360.0)答案:A33. 设有定义:int x=11,y=12,z=0;,以下表达式值不等于 12 的 是A) (z,x,y)B)(z=x,y)C)z=(x,y)D) z=(x==y)答案:D34. 以下可以将任意⼀个两位整数n的个位数与⼗位数对换的表达式为A)(n-n/10*10)10+n/10B)n-n/1010+n/10C)n/10+(n-n/10)D)(n-n/10)*10+(n/10)答案:A35. 设有以下程序段int y;y=rand() % 30+1;则变量 y 的取值范围是A) 1<y<30B)0≤y≤30C) 0<y≤30D)1<y≤30答案:C36. 以下程序段中,循环次数不超过 10 的是A)int i=10; do{ i=i+1;} while(i<0);B)int i=5; do{ i+=1;} while(i>0);C)int i=1; do{ i+=2;} while(i!=10);D)int i=6; do{ i-=2;} while(i!=1);答案:A37. 以下叙述正确的是A)计算机只接收由 0 和 1 代码组成的⼆进制指令或数据B)计算机只接收由 0 和 1 代码组成的⼗进制指令或数据C)计算机可直接接收并运⾏ C 源程序D)计算机可直接接收并运⾏任意⾼级语⾔编写的源程序答案:A38. 简单程序设计步骤中不包括A)编码B)确定算法C)安装编译程序D)调试答案:C39. 关于 C 语⾔标识符,以下叙述错误的是A)标识符可全部由数字组成B)标识符可全部由下划线组成C)标识符可全部由⼩写字母组成D)标识符可全部由⼤写字母组成答案:A40. 若有 C 语⾔表达式 2+34+7/3,则以下选项中关于执⾏顺序的叙述,正确的是A)先执⾏ 34 得 12,再执⾏ 2+12 得 14,再执⾏ 7/3 得 2,最后执⾏ 14+2 得 16B)先执⾏ 34 得 12,再执⾏ 7/3 得 2.5,最后执⾏ 2+12+2.5 得16.5C)先执⾏ 7/3 得 2,再执⾏ 34 得 12,再执⾏ 12+2 得 14,最后执⾏ 2+14 得 16D)先执⾏ 2+3 得 5,再执⾏ 5*4 得 20,再执⾏ 20+7 得 27,最后执⾏ 27/3 得 9答案:A41. 若想给已定义为 int 型的变量 a,b,c,d 赋值为 1,以下选项中错误的语句是A)a=b, b=c, c=d, d=1;B)a=b=c=d=1;C)a=1, b=a, c=b, d=c;D)d=1, c=d, b=c, a=b;答案:A42. 若有定义:char c; int d; 程序运⾏时输⼊:c=1,d=2<回车>,能把字符 1 输⼊给变量 c、整数 2 输⼊给变量 d 的输⼊语句是A)scanf(“c=%c,d=%d”, &c,&d);B)scanf(“c=%c d=%d”, &c,&d);C)scanf(“c=%d,d=%d”, &c,&d);D)scanf(“c=%d d=%d”, &c,&d);答案:A43. 以下叙述正确的是A) C 编译程序把⽂件后缀为.c 的源程序⽂件编译成⽂件后缀为.exe 的可执⾏⽂件B)C 编译程序把⽂件后缀为.c 的源程序⽂件编译成⽂件后缀为.obj 的⼆进制⽂件C)C 编译程序把⽂件后缀为.obj 的⼆进制⽂件编译成⽂件后缀为.exe 的可执⾏⽂件D)链接程序把⽂件后缀为.c 的源程序⽂件链接成⽂件后缀为.exe的可执⾏⽂件答案:B44. 算法应当具有的特性不包括A) 确定性B)有穷性C)美观性D)可⾏性答案:C45. 以下不属于 C 语⾔整数的是A)12fB)25uC)-32D)+20L答案:A46. 有 C 语⾔表达式 23+4+15%3 ,关于其执⾏顺序,以下叙述正确的是A)先执⾏ 23 得 6,再执⾏ 6+4 得 10,再执⾏ 15%3 得 0,最后执⾏ 10+0 得 10B)先执⾏ 23 得 6,再执⾏ 15%3 得 5,最后执⾏ 6+4+5 得 15C)先执⾏ 15%3 得 0,再执⾏ 23 得 6,最后执⾏ 6+4+0 得 10D)先执⾏ 15%3 得 3,再执⾏ 4+3 得 7,再执⾏ 2*3 得 6,最后执⾏ 6+7 得 13答案:A47. 若想给已定义为 int 型的变量 a、b、c、d 赋整数 1,以下选项中错误的语句是A)d=c, c=b, b=a, a=1;B)d=c=b=a=1;C)d=(b=c=(a=1));D)d=1, c=d, b=c, a=b;答案:A48. 若有定义:int a; float b; double c; ,程序运⾏时输⼊:1,2,3<回车>,能把 1 输⼊给变量 a、2 输⼊给变量 b、3 输⼊给变量 c 的输⼊语句是A) scanf("%d,%f,%f", &a,&b,&c);B)scanf("%d%f%lf", &a,&b,&c);C)scanf("%d,%lf,%lf", &a,&b,&c);D) scanf("%d,%f,%lf", &a,&b,&c);答案:D49. 以下叙述正确的是A)循环结构、选择结构、顺序结构都是结构化程序的基本结构B)计算机可以直接执⾏ C 语⾔程序,不需要做任何转换C)过于复杂的算法不能使⽤ N-S 流程图描述D)只有不超过 20 步操作步骤的算法才是简单算法答案:A答案:A50. 以下叙述正确的是A) C 语⾔程序并不是必须要定义 main()函数B)只使⽤三种基本结构即可解决任何复杂问题C)只要程序包含了任意⼀种基本结构,就肯定是结构化程序D)程序中的语法错误只有在运⾏时才能显现答案:B51. 以下选项中,合法的 C 语⾔常量是A) 2MBB)‘CPP’C)"\1.0D) 21.84答案:D52. 以下选项中,合法的 C 语⾔实数是A).1e0B)E1C)0.10ED)2.1e0.2答案:A53. 设 a,b,c 是整型变量,且已正确赋初值,以下选项中错误的赋值语句是A)a = 2 = (b = 9) = 1;B)a = (b = 3) * c;C)a = b = c / 10;D)a = 1 % (b = c = 2);答案:A54. 有如下程序#include <stdio.h>main( ) {int x = 072;printf(“X=%d\n”, x+1);}程序运⾏后的输出结果是A) X=73B) X=59C)X=115D)X=72答案:B55. 下⾯叙述正确的是A)C 语⾔程序的语句经过编译和链接转换成⼆进制机器指令后才能执⾏B)任何算法需要包含三种基本结构中的两种以上C)复杂算法是不能⽤三种基本结构来表达的D)只要是简单算法,它的操作步骤都不会超过 20 步答案:A56. 下⾯叙述正确的是A)任何复杂任务都可以分解成简单⼦任务B)C 语⾔程序的所有函数只能处于同⼀个源⽂件中C)包含全部三种基本结构的程序才是结构化程序D)C 语⾔程序可以定义多个不同内容的 main 函数答案:A57. 以下选项中,合法的数值型常量是A) ‘X’B) 3.2B) 3.2C)099D)0xEH答案:B58. 以下选项中,合法的实数是A) 1.9E1.4B)E1.1C)2.10ED) 1.5E2答案:D59. 若已有定义语句:int a, b, c;,且变量已正确赋初值,则以下选项中正确的赋值语句是A)a = (b = c) + 8;B)(a = b) = c = 9;C)a = (b == c) = ‘A’;D)a + b = c + 1;答案:A60. 有以下程序#include <stdio.h>main( ) {int x = 0x13;printf(“INT:%d\n”, x+1);}程序运⾏后的输出结果是A) INT:12B)INT:13C) INT:20D)INT:14答案:C61. 关于程序设计基本概念,以下叙述错误的是A)计算机可以直接执⾏由任意⾼级语⾔编写的程序B)⾼级语⾔都有与之对应的编译程序或解释程序C)⽤任何⼀种计算机⾼级语⾔都可以把算法转换为程序D)结构化算法可以解决任何复杂的问题答案:A62. 关于程序中的注释,以下叙述正确的是A) 注释中间可以嵌套另⼀个注释B)注释必须置于所说明的语句前或语句后C)注释的内容必须放在/* 和 */之间D)注释内容错误会导致编译出错答案:C63. 以下不能⽤于实型数据的运算符是A) +B)/C)*D) %答案:D64. 以下选项中,与 n=i++ 完全等价的表达式是A)n=i,i=i+1B)n+=i+1C)i=i+1,n=iD)n=++i答案:A65. 以下表达式的值与 x ⽆关、其值恒为真的是A)0 < x < 5B)x>10 && x<5C)x>10 || x<5D)x<10 && x>5答案:A66. 设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将m 中的数值保留⼩数点后两位,第三位进⾏四舍五⼊运算的表达式是A)n=m100+0.5, m=n/100.0B)m=(m100+0.5)/100.0C)n=m/100+0.5, m=n100.0D)m=m100+0.5/100.0答案:A67. 以下叙述正确的是A) 函数体内的定义语句和可执⾏语句允许任意交替出现B)main()函数若不带参数,其后⾯的⼀对圆括号可省略C) C 程序总是以 main()作为程序执⾏的起始⾏D)C 语⾔中的语句之间必须⽤分号作为分隔符答案:C68. C 语⾔中的基本数据类型包括A)整型、实型、字符型B)整型、字符型、数组C)整型、实型、逻辑型D)整型、实型、结构体答案:A69. 以下不正确的定义语句是A) long b=0L;B) unsigned int a= -100u;C)short c2=0123;D)int d=0x0;答案:B70. 以下⾮法的字符常量是A)’\n’B)’\101’C)’\x21’D)’\0’答案:A71. 设有定义:int x=7,y=12;,则以下表达式值为 3 的是A)(y%=x)-(x%=5)B)y%=(x%=5)C)y%=x-x%5D)y%=(x-x%5)答案:A72. 设有定义:int n = 1234;double x = 3.1415;则语句: printf("%3d,%1.3f\n", n, x); 的输出结果是A) 1234,3.141B)123,3.142C) 1234,3.142D)123,3.141答案:C73. 以下叙述错误的是A)任何能通过编译和运⾏的算法都⼀定能得到所期望的结果B)⼀个算法所包含的操作步骤应该是有限的C)算法中每⼀条指令必须有确切的含义D)算法可以⽤各种描述⽅法来进⾏描述答案:A74. 关于程序模块化,以下叙述错误的是A) 程序模块化可以提⾼调试程序的效率B)程序模块化可以提⾼程序编制的效率C)程序模块化可以提⾼程序代码复⽤率D)程序模块化可以提⾼程序运⾏的效率答案:D75. 以下是正确 C 语⾔标识符的是A)_3B)#3C)&3D)-3答案:A76. 以下是正确 C 语⾔实型常量的是A)1e-1B)e-1C)-1eD).e-1答案:A77. 若想定义 int 型变量 a,b,c,d 并都赋值为 1,以下写法中错误的是A)int a=b=c=d=1;B)int a=1, b=1, c=1, d=1;C)int a,b,c,d; a=b=c=d=1;D)int a,b,c,d=1; a=b=c=d;答案:A78. 若有定义:char c; double d; 程序运⾏时输⼊:1 2<回车>,能把字符 1 输⼊给变量 c、数值 2 输⼊给变量 d 的输⼊语句是A)scanf("%c%lf", &c,&d);B)scanf("%d%lf", &c,&d);C)scanf("%c%f", &c,&d);D)scanf("%d%f", &c,&d);答案:A79. 以下叙述正确的是A)所有程序⾏都必须⽤分号结束B)C 语⾔程序由 C 语句组成,可以省略 main 函数C)分号是 C 语句之间的分隔符D) 在 C 语⾔中分号是语句的组成部分答案:D80. 以下叙述正确的是A) C 程序由函数组成,可以不包含 main 函数B)每个 C 程序⽂件中的 main 函数都应当放在最前⾯C)每个 C 程序⽂件都应当包含⼀个 main 函数D) 每个 C 程序都只能有⼀个 main 函数答案:D81. 若有定义:int a,b,c; 以下程序段的输出结果是a=11; b=3; c=0;printf("%d\n",c=(a/b,a%b));A)2B)0C)3D)1答案:A82. 有以下程序#include <stdio.h>main(){ int a=2,b=3,c=4;a*=16 +(b++) - (++c);printf("%d \n",a );}程序运⾏后的输出结果是A)30B)28C)15D)14答案:B83. 若有定义:double a, b, c; 能正确给 a,b,c 输⼊数据的语句是A)scanf(" %lf %lf %lf",&a, &b, &c );B)scanf(" %f %f %f",&a, &b, &c );C)scanf(" %lf %lf %lf",a, b, c );D)scanf(" %lf %lf %lf"; *a, *b, *c );答案:A84. 输出语句:printf("%d\n",11+011);的输出结果是A)22B)20C)022D)021答案:B85. 以下叙述正确的是A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构B)C 语⾔程序不编译也能直接运⾏C)有些算法不能⽤三种基本结构来表达D)如果 C 语⾔程序实现的算法很简单,则计算机不进⾏任何代码转换就能执⾏程序答案:A86. 以下叙述正确的是A)通过分解成简单⼦任务,可以完成任何复杂任务B)每个结构化程序都要包含全部三种基本结构C)C 语⾔程序的所有⾃定义函数只能写在同⼀个源⽂件中D)C 语⾔程序允许使⽤多个 main 函数,只要它们的函数体各不相同即可答案:A87. 以下选项中合法的 C 语⾔常量是A) 2EKB)‘C-STR’C)"\1.0D) 2014.1答案:D88. 以下选项中,合法的 C 语⾔实数是A).4e0B)4.3e0.2C)E4.8D)0.29E答案:A89. 设 a,b,c 已定义为整型变量,以下选项中不正确的赋值语句是A)a = 3 = (b = 2) = 1;B)a = (b = 0) * c + 1;C)a = b = c / 1.0;D)a = 10 % (b = c = 2.0);答案:A90. 有以下程序#include <stdio.h>main( ) { int x = 0x9;printf("%c\n", ‘A’+x);}程序运⾏后的输出结果是A)IB)JC)KD)H答案:B91. 以下叙述中错误的是A)计算机可以直接识别由⼗六进制代码构成的程序B)可以连续执⾏的指令的集合称为“程序”C)“程序”是⼈与计算机“对话”的语⾔D)计算机可以直接识别由 0 和 1 组成的机器语⾔代码答案:A92. 在传统流程图中,⽤来表⽰输⼊输出的图形是A) 椭圆形B)长⽅形C)菱形D)平⾏四边形答案:D93. 以下说法正确的是A)赋值语句是⼀种可执⾏语句,应当出现在函数的可执⾏部分B)赋值语句可以出现在函数中的任意位置C)赋值语句可以出现在函数外单独执⾏D)赋值语句可以出现在源程序中的任意位置答案:A94. 若有定义: double x;,则表达式:x=0,x+10,x++ 的值是A)1.0B)10.0C)11.0D)0.0答案:D95. 若变量已正确定义并赋初值,以下合法的赋值语句是A)k=(m==n);B)k=int(m+n);C)k=-m-nD)k=m*n=1;答案:A96. 设有定义: double x=5.16894;,则语句 printf("%lf\n ",(int)(x*1000+0.5)/1000.);的输出结果是句 printf("%lf\n ",(int)(x*1000+0.5)/1000.);的输出结果是A)5.16900B)5.16800C)0.00000D)输出格式说明符与输出项不匹配,产⽣错误信息答案:A97. 以下选项中不是 C 语⾔数据类型的是A) charB)floatC) stringD)int答案:C98. 以下选项中不能在 C 语⾔程序中⽤作⽤户标识符的是A) _3_14B)scanfC)FloatD) auto答案:D99. 以下选项中可⽤作 C 程序合法整数的是A)0x77B)1 2 (数字间有⼀个空格)C)xffD)018答案:A100. 以下选项中关于 C 语⾔算术表达式的叙述中错误的是A)C 语⾔仅提供了+、-、*、/ 这 4 个基本算术运算符B)C 语⾔采⽤的是⼈们熟悉的四则运算规则,即先乘除后加减C)算术表达式中,运算符两侧类型不同时,将进⾏类型之间的转换D)可以通过使⽤⼩括号来改变算术表达式中某些算术运算符的计算优先级答案:A。
C语言同步练习题
12.以下程序段的输出结果是( )。
A.|3.1415|
B.| 3.0|
C.| 3|
D.|
3.|
float a=3.1415;printf(“|%6.0f|\n”,a);
13.以下程序段的输出结果是( )。
A.9 8
B.8 9
C.6 6
D.以上三个都不对
#include <math.h>
main()
制、十六进制的书写。 4.变量的定义,C的标识符包括关键字、预定义标识符、用户定义标识 符;用户定义标识符的可用字符为字母、数字、下划线,第一个字符为 字母或下划线。 5.常见数据类型的取值范围,int为-32768~+32767,unsigned int为 0~65535。 6.转义字符:\n、\t、\b、\r、\f、\\、\’、\”、\ddd、\xhh 7.不同数值型数据的混合运算,低级类型转换为高级类型运算 8.C的运算符:注意结合方向和运算的优先级 9.算术运算符:+、-、*、/、%、++、--,注意自加、减运算符分前缀 和后缀两种方式。其中前缀方式为先自加、减,后引用;后缀方式为先 引用,后自加、减;运算符%要求运算量为整数,运算结果也为整数。 注意除运算时,若运算量为整型时,其运算结果也是整型的规则。 10.赋值类运算符:=、+=、-=、*=、/=、%=,注意含义和数据类型的 转换。 11.逗号运算符的使用,注意逗号运算符的运算规则。
a=a+7=c+b
7.不合法的八进制数是( )。
A.0
B.028
C.077
D.01
8.不合法的十六进制数是( )。
A.oxff
B.0Xabc
C.0x11
C语言习题及解答
第1部分课后练习题第1章C语言概述一、选择题1.一个C程序的执行是从。
A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束2.以下叙述正确的是。
.在C程序中,main函数必须位于程序的最前面A)C程序的每行中只能写一条语句B)C语言本身没有输入输出语句C)在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面4.C语言规定:在一个源程序中,main函数的位置。
A) 必须在最开始 B) 必须在系统调用的库函数的后面C) 可以任意 D) 必须在最后5.一个C语言程序是由。
A) 一个主程序和若干子程序组成 B) 函数组成C) 若干过程组成 D) 若干子程序组成6.C语言中的语句需要符号作为结尾。
A) : B) ; C)。
D) //7.C 语言程序中可以对程序进行注释,注释部分用符号_____括起来。
A)‘{‘ 和’}’ B)‘[‘和’]’C)“/*”和”*/” D)“*/”和”/*”8.C语言中注释的位置。
A) 必须在程序的最开始 B) 必须在程序的结尾C) 可以在程序的任何位置 D) 不可以写到main函数里面9.C语言程序能够在不同的操作系统下面运行,这说明c语言具有很好的。
1A) 适应性 B)移植性 C)兼容性 D) 操作性10.C语言经过编译后生成的文件的后缀是。
A).c B) .cpp C) .exe D) .obj11.C语言编译程序的首要工作是。
A) 检查C语言程序的语法错误 B) 检查C语言程序的逻辑错误C)检查程序的完整性 D) 同时检查语法和逻辑错误12. C语言经过链接后生成的文件的后缀是。
C语言试卷01
C语言试题(一)1.下列关于C语言用户标识符的叙述中正确的是______。
A. 用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.以下叙述不正确的是A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面3.下面能正确进行字符串赋值操作的语句是A.char s[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};C.char *s;s="ABCDEF";D.char *s; scanf("%s",s);4.下列叙述中正确的是A. C语言编译时不检查语法B. C语言的子程序有过程和函数两种C. C语言的函数可以嵌套定义D. C语言的函数可以嵌套调用5.以下程序输出的结果是____。
main( ){ float a=5,b=4,d;d=(a>b);printf("%d\n",d);}A. 1B. 0C. 1.0D. 46.设int a=5,b=6,表达式(b--==6)?++a:--b的值是___A. 5B. 6C. 7D. 47.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。
for(i=0, j=10; j>=i; i++, j--)k=i+j;A. 10B. 20C. 8D. 08.能正确表示逻辑关系:"1≤a≤9"的C语言表达式是A. a>=1 or a<=9B. a>=1且a<=9C. a>=1&&a<=9D. 1≤a≤99.有以下程序main(){int i=0,k=2;if(++i)printf("%d",k);else printf("%d",-k)}执行后输出结果是A. -2B. 2C. 0D. 110.执行下面的程序段后,变量k中的值为int k=3, s[2];s[1]=k; k=s[1]*10;A.不定值 B.33 C.30 D.10 11.若有以下说明和语句,则输出结果是______。
C语言练习题(带详解答案)
1、编程题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分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
c语言入门练习题
C语言入门练习题一、基础知识篇1.1 变量与常量1. 定义一个整型变量并赋值为10。
2. 声明一个浮点型常量,其值为3.14。
3. 将字符型变量 'A' 赋值给另一个字符型变量。
1.2 数据类型1. 将一个整型变量转换为浮点型变量。
2. 将一个长整型变量赋值给一个短整型变量。
3. 编写一个程序,输出不同数据类型所占的字节数。
1.3 运算符1. 计算5加3乘2的结果。
2. 判断两个整型变量是否相等。
3. 使用自增运算符使变量i的值增加1。
二、控制结构篇2.1 顺序结构1. 编写一个程序,输出1到10的整数。
2. 输出用户输入的两个整数中的较大值。
3. 计算并输出圆的面积(给定半径)。
2.2 选择结构1. 判断一个整数是正数、负数还是零。
2. 根据用户输入的成绩,输出对应的等级(A、B、C、D、E)。
3. 编写一个程序,实现石头剪刀布的游戏。
2.3 循环结构1. 计算1到100所有整数的和。
2. 输出所有的水仙花数(一个三位数,其各位数字的立方和等于该数本身)。
3. 使用循环结构输出九九乘法表。
三、函数篇3.1 函数定义与调用1. 编写一个函数,计算两个整数的和。
2. 定义一个函数,实现字符串的复制。
3. 创建一个函数,判断一个数是否为素数。
3.2 递归函数1. 使用递归函数计算斐波那契数列的第n项。
2. 编写一个递归函数,实现字符串的逆序输出。
3. 利用递归函数求解汉诺塔问题。
四、数组篇4.1 一维数组1. 初始化一个包含10个整数的数组,并输出其元素。
2. 计算一维数组中所有元素的和。
3. 找出一维数组中的最大值和最小值。
4.2 二维数组1. 创建一个3行4列的二维数组,并输出其元素。
2. 计算二维数组对角线元素的和。
3. 实现矩阵的转置。
五、指针篇5.1 指针基本操作1. 声明一个整型变量和一个指向该变量的指针,并输出指针所指向的值。
2. 使用指针实现两个整数的交换。
3. 编写一个函数,通过指针参数修改传入的字符串。
(完整word)C语言分章节练习
习题汇编第一章 C语言概述1。
1选择题【题1.1】以下不是C语言的特点的是( B )A。
C语言简洁、紧凑B.能够编制出功能复杂的程序C。
C语言可以直接对硬件进行操作D.C语言移植性好【题1.2】以下不正确的C语言标识符是( D )。
A.ABC B.abc C.a_bc D.ab。
c【题1.3】以下正确的c语言标识符是( C )。
A.%x B.a十b C.a123 D.test!【题1.4】一个c程序的执行是从( A )。
A.main( )函数开始,直到main( )函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main( )函数开始,直到最后一个函数结束【题1.5】一个C语言程序是由(B).A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成【题1.6】一个c程序是由( B ).A.一个主程序和若干子程序组成B.一个或多个函数组成C. 若干过程组成D.若干子程序组成【题1.7】C语言派程序的基本单位是( B )。
A.过程 B.函数 c子程序 D.标识符【题1.8】编辑程序的功能是( A )。
A.建立并修改程序 B.将c源程序编译成目标程序C.调试程序 D.命令计算机执行指定的操作1.2填空题【题1.9】c语言符号集包括【英文字母、数字和一些有待定含义的标点符号】。
【题1.10】一个c程序有且仅有一个【main()】函数。
【题1.11】C程序的基本单位是【函数】。
【题1.12】一个c程序有【1】个main( )函数和【若干】个其他函数。
【题1.13】在一个C源程序中,注释部分两侧的分界符分别是【/*】和【*/】。
【题1.14】结构化设计中的三种基本结构是【顺序结构、分支结构和循环结构】。
【题1.15】在C语言中,输入操作是由库函数【scanf】完成的,输出函数是由库函数【printf】完成的。
1.3编程题【题1.16】编写一个程序,在屏幕上输出你的姓名。
信息学奥赛辅导(C语言一)
信息学奥赛辅导(C语言一)信息学奥赛辅导:C语言复习题(一)第1~3章练习题一、选择题1、一个C语言程序总是从____A、主过程开始执行B、主函数开始执行C、子程序开始执行D、主程序开始执行2、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为_A、4B、16C、32D、523、下面四个选项中,均是C语言关键字的选项是____A、auto enum includeB、switch typedef continueC、signed union scanfD、if struct type4、下面四个选项中,均是合法整型常量的选项是____A、160 -0xffff 011B、-0xcdf 01a 0xeC、-01 986,012 0668D、-0x48a 2e5 0x5、下面四个选项中,均是合法浮点数的选项是___A、+1e+1 5e-9.4 03e2B、-.60 12e-4 -8e5C、123e 1.2e-.4 +2e-1D、-e3 .8e-4 5.e-0A、'\'' '\\' '\n'B、'\' '\017' '\"'C、'\018' '\f' 'xab'D、'\\0' '\101' 'xlf'7、下面正确的字符常量是____A、'\X17'B、'\80'C、'\\'D、"\n"8、下面四个选项中,均是正确的八进制数和十六进制数的选项是____A、-10 0x8f -011B、0abc -017 0xcC、010 -0x11 0xf1D、0a12 -0x123 -0xa9、下面四个选项中,均是正确的数值常量或字符常量的选项是____A、0.0 0f 8.9e '&'B、"a" 3.9E-2.5 1e1 '\"'C、'3' 011 0xFF00 0aD、+001 0xabcd 2e2 50.10、若有代数式,则正确的C语言表达式是____A、2*ln(x)*cos(x)/3*xB、2*ln(x)*cos(x)/(3*x)C、2*log(x)*cos(x)/3*xD、2*log(x)*cos(x)/(3*x)11、若有说明语句:char ch1='\065';char ch2="2";char ch3='2';则:ch1中____,ch2中____,ch3中____A、包含1个字符B、包含2个字符C、包含3个字符D、字符个数不确定,说明不正确12、若有运算符:>、*=、?:、%、sizeof,则将它们按运算的优先级排列的正确次序为(由低至高)____A、*=→?:→%→>→sizeofB、?:→*=→>→%→sizeof13、若有以下类型说明语句:char a;int b;float c;double d;则表达式a*b+d-c的结果类型为____A、floatB、charC、intD、double14、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是____A、a=9+b+c=a+9B、a=9+b;c=a+9;C、a=(9+b,b++)D、a=9+b++=a+715、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为____A、DB、68C、一个不确定的值D、C16、以下运算符中优先级最高的运算符是____A、&&B、++C、?:D、!=17、若有定义:int k=7;float a=2.5,b=4.7;则表达式a+k%3*(int)(a+b)%2/4的值是___A、2.500000B、2.7500000C、3.500000D、0.00000018、sizeof(float)是____A、双精度型表达式B、一个整型表达式C、一个函数调用D、一个不合法的表达式19、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是____A、y=(y*100+0.5)/100.0B、x=y*100+0.5,y=x/100.0C、y=y*100+0.5/100.0D、y=(y/100+0.5)*100.020、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是____A、0~255B、0~65535C、-32768~+32767D、-256~+25521、若有以下定义,则能得到值为3的表达式是____(int m=7,n=12)A、n%=(m%=5)B、n%=(m-m%5)C、n%=m-m%5D、(n%=m)-(m%=5)22、若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是___< bdsfid="170" p=""></b?a:c<d?c:d 的值是___<>A、4B、3C、2D、123、若x为int类型,则逗号表达式(x=4*5,x*5),x+25的结果是___,x的值是___A、20B、100C、表达式不正确D、4524、putchar函数可以向终端输出一个____A、整型变量值B、实型变量值C、字符串D、字符或字符型变量值25、若有以下变量说明和数据的输入方式,则正确的输入语句为('└─┘'代表空格)____变量说明:float x1,x2;数据的输入方式:4.52<回车>3.5<回车>A、scanf("%f,%f",&x1,&x2);B、scanf("%f%f",&x1,&x2);C、scanf("%3.2f└─┘%2.1f",&x1,&x2);D、scanf("%3.2f%2.1f",&x1,&x2);26、若运行以下程序时,从键盘输入25,13,10<回车>,则输出结果为___{int a1,a2,a3;scanf("%d%d%d",&a1,&a2,&a3);printf("a1+a2+a3=%d\n",a1+a2+a3);}A、a1+a2+a3=48B、a1+a2+a3=25B、a1+a2+a3=10D、不确定值27、已知a、b、c为int类型变量,若有输入语句:scanf("a=%db=%dc=%d",&a,&b,&c);为使a值为1,b值为3,c值为2,从键盘输入数据的正确形式应当是____A、132<回车>B、a=1b=3c=2<回车>C、1<回车>3<回车>2<回车>D、a=1<回车>b=3<回车>c=2<回车>28、以下能正确定义整型变量x、y和z并为其赋初值5的语句是____A、int x=y=z=5;B、int x,y,z=5;C、int x=5,y=5,z=5;D、x=5,y=5,z=5;29、执行下面程序段后,x的值是____int x;printf("%d\n",(x=3*5,x+5));30、下面程序段的输出结果是____int a=023;printf("%d\n",--a);A、23B、17D、2431、已知ch是字符型变量,则不正确的赋值语句是____A、ch=5+9;B、ch='\0';C、ch='7'+'9';D、ch='a+b';32、设x,y是float型变量,则不正确的赋值语句是____A、++x;B、y=int(5);C、x*=y+1;D、x=y=0;33、设有说明:double b=0.5,c=1.5;int a=10;则正确使用了C语言库函数的赋值语句是____A、c=asin(c)+fabs(a);B、b=log10(b)+pow(b);C、c=sqrt(b-c);D、a=(int)(atan2((double)a,b)+exp(b-0.2));34、以下程序段的输出结果是____int i=1,j=4,k=2;float x=5.5,y=9.0,z;z=(i+j)/k+sqrt((double)y)*1.2/k+x;printf("%f\n",z);A、9.800000B、9.300000C、8.500000D、8.00000035、若a为int类型变量,则执行以下程序段后a的值为____a=5;a*=a/=a++;B、1C、40D、336、若a和b均为int型变量,则执行以下程序断后x的输出是____x=15;y=15;printf("%d\n",x%=(y%=2));A、0B、1C、6C、1237、若x为unsigned int类型变量,则执行以下程序段后x的值是____x=65535;printf("%d\n",x);A、65535B、1C、无定值D、-138、以下语句的执行结果是____printf("%d\n",NULL);A、1B、0C、-1无定值39、若x为int类型变量,则执行以下程序段后的输出结果是____x=0xDEF;printf("%4d,%4o,%4x\n",x,x,x);A、3567,6757,defB、3567,6757,xdefC、3567,06757,0xdefD、3567,6757,0def40、若a、b、c均为int型变量,则执行以下程序段后的输出结果为____b=(a=10,a+5,c=10);printf("a=%d,b=%d,c=%d\n",a,b,c);c=(a=10,b=5,a+b);printf("a=%d,b=%d,c=%d\n",a,b,c);A、a=10,b=15,c=10B、a=10,b=10,c=10a=10,b=5,c=10 a=10,b=5,c=10C、a=10,b=10,c=10D、a=10,b=10,c=10a=10,b=5,c=15a=10,b=5,c=541、若a1、a2、a3、a4均为char类型变量,则执行以下程序段后的输出结果为____a1='1';a2='2';a3='3';a4='4';printf("%1c\n",a1);printf("%2c\n",a2);printf("%3c\n",a3);printf("%4c\n",a4);A、1B、1C、1D、输出格式的描述符不正确2 2 023 3 0034 4 000442、执行语句printf("The program's name is c:\\tools\book.txt");后的输出是____B、The program's name is c:\tools book.txtC、The program's name is c:\\tools book.txtD、The program's name is c:\toolook.txt43、设a、b、c、d均是int类型变量,为了使以下程序段的输出为:1234+123+12+1,正确的输入形式应当是____scanf("%4d+%3d+%2d+%1d",&a,&b,&c,&d);printf("%4d+%3d+%2d+%1d",a, b, c, d);A、1234123121<回车>B、1234123412341234<回车>C、1234+1234+1234+1234<回车>D、1234+123+12+1<回车>44、设c1、c2均是char类型变量,则以下不正确的函数调用是____A、scanf("c1=%cc2=%c",&c1,&c2);B、getchar( )C、putchar(c2);D、putchar(c1,c2)45、逻辑运算符两侧运算对象的数据____A、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任何类型的数据46、判断char型变量c1是否为大写字母的正确表达式是____A、'A'<=c1<='Z'B、(c1>='A')&(c1<='Z')C、(c1>='A')&&(c1<='Z')D、('A'<=c1) AND ('Z'>=c1)47、执行以下程序段后的a值是___,b的值是___,c的值是___int a=5,b=6,c=1,x=2,y=3,z=4;A、0B、6C、1D、548、设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是_A、'i'&&'j'B、i<=jC、i||j+k&&j-kD、!((i<j)&&!k||1)< bdsfid="334" p=""></j)&&!k||1)<>49、设ch是char类型变量,其值是A,则以下表达式的值是____ch=(ch>='A'&&ch<='Z')?(ch+32):chA、ZB、AC、aD、z50、若希望当num的值为奇数时,表达式的值为“真”,num 的值为偶数时,表达式的值为“假”。
C语言程序设计_习题大全(含答案)_C语言-1
C语言基础一:1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x<<02>>B>>23.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) Case). Default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值 D) T9若有以下定义char s='\092';则该语句( B )A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占( D )个字节。
c语言练习 (1)
A、当y<0时整个循环结束
B、y>=0时什么也不输出
C、printf函数永远也不执行
D、最多允许输出100个非负整数 76、以下程序段等价于____ for (k=100; k<=200; k++) { if (k%3==0) continue; printf("%4d", k); } A、for (k=100; (k%3)&&k<=200; k++) printf("%4d", k); B、for (k=100; (k%3)||k<=200; k++) printf("%4d", k); C、for (k=100; k<=200; k++) if (k%3!=0) printf("%4d", k); D、for (k=100; k<=200; k++) { if (k%3) printf("%4d", k); else continue; break; }
C、2 3 4 6 9 12
D、2 3 4
6 9 12
10 15 20
70、以下程序段中是死循环的是____
A、int n=1; B、int n=1;
while (!n)
do { n--;
n++;
}while(n);
C、int n=1;
D、for (n=5; n<1; ) ;
D、for循环的循环体语句中,可以包含多条语句,但必须用花括号 括起来 64、语句for (表达式1; ; 表达式3)等价于____ A、for (表达式1; 0 ; 表达式3) B、for (表达式1; 1 ; 表达式3) C、for (表达式1; 表达式1; 表达式3) D、for (表达式1; 表达式3; 表达式3) 65、若k为整型变量,则以下for循环的执行次数是____ for (k=2; k==0; )
c语言上机试题库及答案
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
C语言题库 (1)
一.选择题(单项)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 intD _123 temp INT4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数——。
A由用户自己定义B均为2个字节C 是任意的D 由所用机器的机器字长决定5.下面4个选项中,均是合法浮点数的选项是——。
A+1e+1 5e-9.4 03e2B-.60 12e-4 -8e5C 123e 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)的值是——。
A7 B8C 6D 28.以下正确的叙述是——。
A在C语言中,每行只能写一条语句B若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C 在C程序中,无论整数还是实数,都能被准确无误的表示D 在C程序中,%是只能用于整数运算的运算符9.以下表达式值为3的是——。
A 16-13%10B 2+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语言第一章习题带答案
练习1-1答案选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$it C.Pxq my->book line# D.str_1 Cpp into2.下面的说法正确的是( C )。
A.C程序由符号构成B.C程序由标识符构成C.C程序由函数构成D.C程序由C语句构成3.与十进制数35相等的二进制数是( A )。
A.100011 B.01001 C.100110 D.100101 4.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.1155.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16C.(2A)16D.576.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2C.(60)10D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)168.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16C.(D8)16D.(27)169.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8C.(60)10D.都不正确练习2-1答案选择题1.C语言中的简单数据类型包括( B )。
A.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的int类型的常数是( A )。
A.32768 B.0 C.037 D.0Xaf3.下列常数中不能作为C的常量的是( D )。
A.0x45 B.2.5e-2 C.3e2 D.05824.设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B)。
A.0至255 B.0~65535 C.-32768~32767 D.-256~2555.下面4个选项中,均是合法转义字符的选项是( A )。
C语言练习题及答案
C语言练习题及答案以下是一些C语言练习题及其答案。
这些练习题旨在帮助初学者巩固C语言的基础知识,并提供了相应的解答。
每个练习题都具有一定的难度,涵盖了C语言的不同概念和语法规则。
通过完成这些练习题,读者能够提高自己的编程能力,并更好地理解C语言的使用。
练习题1:编写一个程序,计算并输出两个整数的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数: ");scanf("%d", &num1);printf("请输入第二个整数: ");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和是: %d\n", sum);return 0;}```练习题2:编写一个程序,接受用户输入的半径,计算并输出圆的面积和周长。
假设圆周率为3.14,使用浮点数进行计算。
```c#include <stdio.h>int main() {float radius, area, circumference;printf("请输入圆的半径: ");scanf("%f", &radius);area = 3.14 * radius * radius;circumference = 2 * 3.14 * radius;printf("圆的面积是: %.2f\n", area);printf("圆的周长是: %.2f\n", circumference);return 0;}```练习题3:编写一个程序,判断一个整数是否为奇数或偶数。
如果是奇数,则输出"奇数",否则输出"偶数"。
C语言练习题(第一套)
C语言程序设计试题(第一套)一、选择题,下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请选择。
(1)若变量已正确定义并赋值,下面符合C语言语法的表达式是(B)A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b讲解:用排除法。
A)中包含一个不合法的运算符“:=”,错;C)明显错;D)可分解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C规定:赋值号的左面只能是单个变量,不能是表达式或常量等。
因此,正确答案是B),它实际上相当于:a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
(2)C语言中运算对象必须是整型的运算符是(A)A)%= B)/ C)= D)〈=讲解:正确答案是A)。
C规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。
(3)若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是(C)A)1 B)2 C)2.0 D)2.5讲解:该题的解答请参阅“整数除法的注意事项”和“逗号表达式”。
正确答案是C)。
(4)若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)A)a==1 B)++i; C)a=a++=5; D)a=int (i); 讲解:(A)中是一个表达式,因为缺少分号,所以不是语句;(C)错误;(D)若改为a=(int)i;则是合法的语句,小括号写错了位置,从另一个角度理解,(D)的写法应该是一个函数调用语句,函数名是int,小括号中的i是实参,这样的话,函数名int又是不合法的,因为C规定:用户标识符(包括函数名)不能是关键字,而int是一个关键字。
所以,正确答案是(B),它相当于语句i=i+1;(5)若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是(B)A)0 B)0.5 C)1 D)2讲解:因为运算表达式中有一个浮点型数据1.0,所以,运算结果应该也是一个浮点类型,只有(B)符合这一条件,仅根据这一点就可以确定(B)是正确答案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if( ) amin=x;
scanf("%f",&x); }
printf("\namax=%f\namin=%f\n",amax,amin); }
五、编程题
1.三个整数a、b、c,由键盘输入,输出其中最大的一个数。
D. 18
13、设有如下定义: int x=10,y=3,z;
则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是( )。
A. 1
B. 0
C. 4
D. 3
14、定义如下变量和数组:int i; int x[3][3]={1,2,3,4,5,6,7,8,9};
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是__________ 。
5、有如下语句:char a[]={"I am a student"}; 该字符串的长度是__________,a[3]=__________ 。
6、在C语言中,符号"a"和'a'的区别是__________。
5、 int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++)
y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是__________ 。
四、程序填空题
1、从键盘上输入10个数,求其平均值。
D. 不合法的。
9、以下程序的输出结果是( )。
char str[15]=”hello!”;
printf(“%d\n”,strlen(str));
A. 15
B. 14
C. 7
D. 6
10、分析以下程序的输出结果是( )。
main()
{int a=5,b=-1,c;
7、所谓“指针”就是__________ 。
“&”运算符的作用是__________。
“*”运算符的作用是__________ 。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是__________。
2、int x=6, y=7;
printf(“%d,”,x++);
printf(“%d\n”,++y);
程序的输出结果是__________ 。
3、a=3;
a+=(a<1)?a:1;
printf(“%d”,a);
A. 4 4
B. 2 2
C. 2 4
D. 4 6
20、不能把字符串:Hello!赋给数组b的语句是( )。
A. char b[10]={'H','e','l','l','o','!'};
B. char b[10]; b="Hello!";
A. 缩排位置相同的if
B. 在其之前未配对的if
C. 在其之前未配对的最近的if
D.同一行上的if
3、以下程序的输出结果是( )。
int x=10,y=10;
printf(“%d %d\n”,x--,--y);
c=adds(a,b);
printf(“%d”,c);
c=adds(a,b);
printf(“%d\n”,c); }
int adds(int x,int y)
{static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m); }
一、填空题
1、C语言中基本的数据类型有:__________、__________ 、__________ 。
2、C语言中普通整型变量的类型说明符为__________,在内存中占__________字节,有符号普通整型的数据范围是__-32768----32767________。
3、整数-35在机内的补码表示为__________。
结果是__________。
4、for (a=1,b=1;a<=100;a++)
{ if(b>=20) break;
if(b%3==1)
{b+=3; continue;}
b-=5; }
程序的输出结果a的值为__________ 。
D. 6和4
17、设有如下定义: char *aa[2]={"abcd","ABCD"}; 则以下说法中正确的是( )。
A)aa数组成元素的值分别是"abcd"和ABCD"
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
B. abcABz
C. ABabcz
D. xycdBCD
19、下列程序的输出结果是( )。
int a[5]={2,4,6,8,10},*P,* *k;
p=a; k=&p;
printf("%d",*(p++));
printf("%d\n",* *k);
printf(“%f\n”,(float)a);
A. 62.000000
B. 62.800000
C. 63.000000
D. 62
7、设有说明double(*p1)[N];其中标识符p1是( )。
A. N个指向double型变量的指针。
B. 指向N个double型变量的函数指针。
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
18、下列程序的输出结果是( )。
char *p1="abcd", *p2="ABCD", str[50]="xyz";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
A. xyabcAB
C. 一个指向由N个double型元素组成的一维数组的指针。
D.具有N个指针元素的一维指针数组,每个元素都只能指向double型量。
8、在C程序中有如下语句:char *func(int x,int y); 它是( )。
A. 对函数func的定义。
B. 对函数func的调用。
C.对函数func的原型说明。
12、以下程序的输出结果是( )。
#define f(x) x*x
main()
{int a=6,b=2,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}
A. 9
B. 6
C. 36
A. 10 10
B. 9 9
C. 9 10
D. 10 9
4、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为( )。
A.P+i*2
B. P+(i-1)*2
C. P+(i-1)
C. char b[10]; strcpy(b,"Hello!");
D. char b[10]="Hello!";
三、读程序题
1、float f=3.1415927;
printf(“%f,%5.4f,%3.3f”,f,f,f);
则程序的输出结果是__________ 。
A. int a[2][3]={{1,2},{3,4},{5,6}};
B. int a[ ][3]={1,2,3,4,5,6};
C. int a[2][ ]={1,2,3,4,5,6};
D. int a[2][ ]={{1,2},{3,4}};
2、以下程序是建立一个名为myfile的文件,并把从键盘输入的字符存入该文件,当键盘上输入结束时关闭该文件。
#include
main()
{ FILE *fp;
char c;
fp=__________ ;
do{
c=getchar();
fputs(c,fp);
}while(c!=EOF);
则语句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
15、以下对二维数组a进行正确初始化的是( )
main()
{int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{__________ ;
__________ ; }
printf(“average=%f\n”,sum/10); }
2.输出1900~2000年中所有的闰年。每输出3个年号换一行。(判断闰年的条件为下面二者之一:能被4整除,但不能被100整除。或者能被400整除。)