01.C语言(基础知识)单元练习一 20
C语言程序设计基础知识
THANKS
感谢观看
06
C语言常见错误和调试
C语言常见的错误类型
语法错误
逻辑错误
运行时错误
段错误
由于代码中存在语法错误, 导致编译器无法解析代码。 常见的问题包括括号不匹配
、缺少分号等。
逻辑错误是指代码在执行过 程中出现了预期之外的结果。 这类错误通常是由于算法错 误、条件语句错误或循环结
构错误引起的。
运行时错误是指在程序执行 过程中出现的错误,如数组 越界、空指针引用等。这类 错误通常是由于程序员的疏 忽或对C语言特性的不熟悉导
致的。
段错误是指程序试图访问的 内存区域不存在或不可访问, 导致程序崩溃。这类错误通 常是由于内存泄漏、数组越
界等原因引起的。
调试技巧和方法
使用调试器
调试器可以帮助程序员逐步执行代码,查看变量 的值和执行路径,从而定位问题所在。常用的C语 言调试器包括GDB和LLDB。
使用断点和单步执行
通过在调试器中设置断点,可以暂停程序的执行 ,并逐步执行代码,观察变量的变化和执行路径 。单步执行可以帮助程序员逐行检查代码,确保 代码按照预期执行。
打印输出
在关键位置添加打印语句,输出变量的值和执行 路径,帮助程序员定位问题。这种方法虽然简单 ,但对于快速定位问题非常有效。
检查内存泄漏和越界
使用内存检测工具可以帮助程序员发现内存泄漏 和数组越界等问题。这些工具可以在程序运行时 检测内存问题,并提供详细的报告和堆栈跟踪信 息。
代码优化和重构
• 优化算法:通过优化算法,可以提高程序的执行效率。选择合适的算法和数据 结构可以大大减少程序的运行时间和空间复杂度。
• 减少函数调用:过多的函数调用会增加程序的开销,可以通过减少函数调用次 数来提高程序的性能。例如,可以将一些计算密集型的操作移到循环外部,避 免重复计算。
C语言试题 (1)
一、 C 语言基础知识1. C语言源程序的基本单位是___B__。
A. 过程 B. 函数 C. 子程序 D. 标识符2. 在C语言中,能代表逻辑值“真”的是__D___。
A. trueB. 大于0的数C. 非0整数D. 非0的数3. 下列各组字符序列中,可用作C标识符的一组字符序列是(A )。
A. Sd, sum, average, _aboveB. class, day, lotus, 1_dayC. #md, &12x, month, student_n1D. 56, r_1_2, name, _stu_11.正确的自定义标识符是 ( )A.a=2B.a+bD.default2.错误的转义字符是 ( ) A.'\091' B.'\\' C.'\0' D.'\''3.设int a,b,c;执行表达式a=b=1,a++,b+1,c=a+b-- 后,a,b和c的值分别是 ( )A.2,1,2B.2,0,3C.2,2,3D.2,1,34.在C语言中,错误的常数是 ( ) A. 1E+0.0 B.5. C. 0xaf D. 0L4. 以下各组数据中,不正确的数值或字符常量是___(1)C___、___(2)C___、___(3)A___、___(4)A___。
(1) A. 0.0 B. 5L C. o13 D. 9861(2) A. 011 B. 3.987E-2 C. 018 D. 0xabcd(3) A. 8.9e1.2 B. 1e1 C. 0xFF00 D. 0.825e2(4) A. "c" B. ′\"′ C. 0xaa D. 50.5. 哪一个是C语言中合法的常量__C___。
A. 1.52e B. ±13 C. ′X′ D. "X"′Y′6.以下叙述正确的是( C )。
C语言基础部分笔试习题
1.C语言字符型(char)数据在内存中是以()形式存储的.A、原码、B、补码、C、反码、D、ASCII码2.在C语言中,合法的长整形常量是:A.0LB.4962710C.324562&D.216D3.以下表示十六进制长整型常量的是:A、0xFFB、017C、0xFGLD、0xFfL4.以下表八进制长整型常量的是:A、17B、08C、07LD、777L5.该语句printf(“%d”,’\001’)输入的值为:A、001 B、0 C、1 D、’\001’6.该语句printf(“%d”,’\x1’)输入的值为:A、001 B、0 C、1 D、’\001’7.该语句printf(“%o”,’\001’)输入的值为:A、01 B、0 C、1 D、’\001’8.该语句printf(“%#o”,’\001’)输入的值为:A、01 B、0 C、1 D、’\001’9.该语句printf(“%x”,’\001’)输入的值为:A、0x1 B、0 C、1 D、’\001’10.该语句printf(“%#x”,’\001’)输入的值为:A、0x1 B、0 C、1 D、’\001’11.下面的常量表示正确并且在内存中占两个字节空间的是::A、2B、’\000’C、’HH’D“W”12.字符串“Hello”的长度是:A、7B、6 C、5 D、413.C语言中整型(int)数据在内存中是以()形式存储的A、原码、B、补码、C、反码、D、ASCII码14.以下常量与char类型数据在内存中占用的空间相同的是:A、’5’B、5 C、”5”D、\n15.以下选项中正确的实型常量是A)0 B)3.1415L C)0.329×10(2)(10 的2 次方) D).87116.以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e2.0 C)-77.77 D)456e-217.下面是表示无符号长整型常量的是:A、40000 B、40000L C、40000U D、40000UL18.在16位C编译系统上若定义long a;,则能给a赋40000的正确语句是:A、a=20000+20000;B、a=4000*10C、a=30000+10000D、a=4000L*10L19.通常一个字节包含____个二进制位。
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语言公共基础知识
选择合适的数据结构和算 法
合理使用数组、链表、哈希表 等数据结构,以及快速排序、 二分查找等算法,可以提高代 码效率和性能。
减少函数调用
过多的函数调用会增加时间复 杂度,可以通过减少函数调用 或使用内联函数来提高性能。
避免重复计算
将重复计算的结果存储在变量 中,避免每次需要时重新计算 。
使用缓存技术
指针的运算
指针可以进行加法、减法、比较等运 算,以方便对数组元素的访问和操作。
指针的声明与初始化
指针变量需要先声明类型,再通过赋 值操作符将变量的地址赋值给指针。
指针与数组
通过指针可以方便地访问数组元素, 例如使用指针遍历数组、访问数组元 素等。
结构体与联合体
结构体的概念
结构体是一种自定义数据类型,可以 包含多个不同类型的数据成员。
1973-1978年
C语言逐渐成熟,成为UNIX操作系统的主要编程语 言。
1978-至今
C语言成为计算机领域中最广泛使用的编程语言之一 ,广泛应用于系统软件、应用软件、嵌入式系统等 领域。
C语言的特点
01
02
03
04
高效
C语言是一种低级语言,能够 直接代码清晰易 懂,易于学习和使用。
结构化
C语言采用结构化的程序设计 方法,强调代码的模块化和组 织结构,提高了代码的可读性 和可维护性。
可移植性
C语言的标准规范统一,在不 同的操作系统和硬件平台上具 有良好的可移植性。
C语言的应用领域
系统软件
操作系统、编译器、数据库等系统软件主要使用 C语言进行开发。
嵌入式系统
C语言在嵌入式系统中应用广泛,如智能家居、 智能硬件等领域。
结构体的声明与初始化
C语言基础练习1题含答案
C语⾔基础练习1题含答案C语⾔基础练习100题(含答案)雷柳青编排1、下⾯程序的输出是________#include<>voidmain(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11B)k=11,k=13,k=13C)k=11,k=013,k=0xbD)k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A)++t;B)n1=(n2=(n3=0));C)k=i=j;D)a=b+c=1;3、下⾯合法的C语⾔字符常量是__________.A)'\t'B)"A"C)65D)A4、字符(char)型数据在微机内存中的存储形式是____.A)反码B)补码C)EBCDIC码D)ASCII码5、设inta=12,则执⾏完语句a+=a-=a*a后,a的值是________A)552B)264 C)144D)-2646、执⾏下⾯程序中的输出语句后,输出结果是______.#include<>voidmain(){inta;printf("%d\n",(a=3*5,a*4,a+5));}A)65B)20 C)15D)107、下⾯程序的输出是__________.#include<>voidmain(){intx=023;printf("%d\n",--x);8、下⾯程序的输出是___________.#include<>voidmain(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67,DB)B,CC)C,DD)不确定的值9、以下程序的输出结果是________.#include<>voidmain(){intx=10,y=10;printf("%d%d\n",x--,--y);}A)1010B)99 C)910D)10910、若x和y都是int型变量,x=100,y=200,且有下⾯的程序⽚段: printf("%d",(x,y));上⾯程序⽚段的输出结果是_______.A)200B)100C)100200D)输出格式符不够,输出不确定的值11、阅读下⾯的程序#include<>voidmain(){inti,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运⾏结果是________.A)1,19B)-1,19 C)1,17D)-1,1712、阅读下⾯的程序m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运⾏结果是_________.A)8,10,8,10B)9,11,8,10C)9,11,9,10D)9,10,9,1113、若已定义inta,则表达式a=10,a+10,a++的值是___.A)20B)10 C)21D)1114、阅读下⾯的程序#include<>voidmain(){inti,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输⼊1234567<回车>,则程序的运⾏结果是________.A)i=123,j=4567B)i=1234,j=567C)i=1,j=2D)i=123,j=4515、下⾯程序的输出结果是________.#include<>voidmain(){inta=-1,b=4,k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A)1,1,2B)1,0,3 C)0,1,2D)0,0,316、下⾯程序的输出结果是_______.printf("%d,%d\n",a+b!=a-b,x<=(y-=);}A)1,0B)0,1 C)1,1D)0,017、若有以下定义和语句:inta=010,b=0x10,c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A)10,10,10B)8,16,10 C)8,10,10D)8,8,1018、已知有double型变量x=,y=,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4的值是_________.A)2.5 C)019、设有以下语句:intx=10;x+=3+x%3,则x的值是._________A)14B)15 C)11D)12 20、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A)1B)6.0 C)21、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A)0B)1 C)12D)622、若有定义intx=3,y=2和floata=,b=,则表达式:(x+y)%2+(int)a/(int)b的值是____.A)0B)2 C)123、在C语⾔中,以下叙述不正确的是________.A)在C程序中,⽆论是整数还是实数,都能被准确⽆误的表⽰B)在C程序中,变量名代表存储器中的⼀个位置C)静态变量的⽣存期与整个程序的⽣存期相同D)C语⾔中变量必须先定义后引⽤24、设a为整型变量,不能正确表达数学关系10A)10C)a>10&&a<15D)!(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使⽤________.(假设已知空格ASCII码为32)A)if(c=='32')B)if(c==32)#include<>voidmain(){intk;charcp;cp=getchar();if(cp>='0'&&cp<='9')k=cp-'0';elseif(cp>='a'&&cp<='f')k=cp-'a'+10;elsek=cp-'A'+10;printf("%d\n",k);}A)2B)4 C)1D)1027、执⾏下⾯程序后,运⾏结果是________.#include<>voidmain(){intx=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=41B)y=43 C)y=42D)y=128、运⾏下⾯程序时,从键盘输⼊"12,34,9",则输出结果是______. #include<>voidmain(){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);if(xif(yelseprintf("%d\n",y);elseif(xelseprintf("%d\n",x);}输出结果是________.#include<>voidmain(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}A)Hello!B)Hello!GoodMorning!C)Hello!D)Hello!Good morning!Bye_Bye!Bye_Bye!30、执⾏下列程序段后的输出结果是_________.intx=1,y=1,z=1;x+=y+=z;printf("%d\n",xA)3B)2 C)1D)431、设ch是char型变量,值为'A',则表达式ch=(ch>='A'&&ch<='Z')?ch+32:ch的值是_____.A)ZB)aC)zD)A32、下⾯程序的输出结果是________.#include<>voidmain(){intx=8,y=-7,z=9;if(xif(y<0)z=0;elsez-=1;printf("%d\n",z);#include<>voidmain(){inta,b,s;scanf("%d,%d",&a,&b);s=a;if(ss=s*s;printf("%d\n",s);}A)14B)16 C)18D)2034、下列程序的执⾏结果是_________.#include<>voidmain(){intx=0,y=1,z=0;if(x=z=y)x=3;printf("%d,%d\n",x,z);}A)3,0B)0,0 C)0,1D)3,135、能够完成如下函数计算的程序段是______. ┌-1x<0 y=┤0x=0└1x>0A)y=1;B)if(x>=0)if(x!=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=0;elsey=-1;C)y=0;D)y=-1;if(x>=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=-1;36、以下程序的执⾏结果是________.#include<>voidmain()case1:switch(y){case0:printf("first\n");break;case1:printf("second\n");break;}case2:printf("third\n");}}A)firstB)firstsecondthirdC)firstD)secondthird37、以下程序的执⾏结果是________.#include<>voidmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf("d=%d\n",d);}A)d=20B)d=10 C)d=15D)2538、下列程序执⾏后的输出结果是________. #include<> voidmain(){intx,y=1,z;if((z=y)<0)x=4;elseif(y==0)x=5;A)4,1B)6,1 C)5,0D)出错信息39、有如下程序#include<>voidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是__________.A)a=2,b=1B)a=1,b=1 C)a=1,b=0D)a=2,b=240、下⾯程序的输出结果是_________.#include<>voidmain(){inta=-1,b=1,k;if((++a<0)&&(b--<=0)) printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}A)-11B)01 C)10D)0041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w则该程序段执⾏后,m的值是_________.A)4B)3 C)2D)142、以下程序的输出结果是_________.main(){inta=100;A)a<=100B)100 C)0D)143、若执⾏下⾯的程序从键盘上输⼊9,则输出结果是.______________ #include<>voidmain(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}A)11B)10 C)9D)844、以下程序段运⾏结果是________.intx=1,y=1,z=-1;x+=y+=z;printf("%d\n",xA)1B)2 C)4D)不确定的值45、有以下程序#include<>voidmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A)2,1B)3,2 C)4,3D)2,-146、运⾏下⾯程序时,若从键盘输⼊数据为"123",则输出结果是_______.#include""voidmain(){intnum,i,j,k,place;scanf("%d",&num);if(num>99)place=3;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(place){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);break;case1:printf("%d\n",k);}}A)123B)1,2,3 C)321D)3,2,147、执⾏下列程序后的输出结果是_______. #include<> voidmain(){intk=4,a=3,b=2,c=1;printf("%d\n",k}A)4B)3 C)2D)148、以下条件表达式中能完全等价于条件表达式if(x)中的x的是____.A)(x==0)B)(x!=0)C)(x==1)D)(x!=1)49、若运⾏下⾯程序时,给变量a输⼊15,则输出结果是______.#include<>voidmain(){inta,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b);}A)5B)25 C)15D)1050、执⾏下⾯程序的输出结果是________.#include<>voidmain(){inta=5,b=0,c=0;if(a=a+b)printf("****\n");elseprintf("####\n");}A)有语法错误不能编译B)能通过编译,但不能通过连接C)输出****D)输出####51、为了避免嵌套的if-else语句的⼆义性,C 语⾔规定else总是与______组成配对关系.A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前尚未配对的最近的ifD)同⼀⾏上的if52、以下程序段__________.x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执⾏两次C)循环执⾏⼀次D)有语法错误53、对下⾯程序段描述正确的是_______.intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);A)运⾏程序段后输出0B)运⾏程序段后输出1C)程序段中的控制表达式是⾮法的D)程序段循环⽆数次54、下⾯程序段的输出结果是_______.x=3;do{y=x--;if(!y){printf("*");continue;}printf("#");}while(x=2);A)##B)##*C)死循环D)输出错误信息55、下⾯程序的运⾏结果是_______.#include<>voidmain(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("%d,%d\n",a,b);}A)3,11B)2,8 C)1,-1D)4,956、下⾯程序段的运⾏结果是__________. intn=0; while(n++<=2)printf("%d",n);A)012B)123 C)234D)错误信息57、下⾯程序段的运⾏结果是________.intx=0,y=0;while(x<15)y++,x+=++y;printf("%d,%d",y,x);A)20,7B)6,12 C)20,8D)8,2058、下⾯程序的运⾏结果是________.#include<>voidmain(){ints=0,i=1;while(s<=10){s=s+i*i;i++;}printf("%d",--i);}A)4B)3 C)5D)659、下⾯程序段的运⾏结果是________.for(x=10;x>3;x--){if(x%3)x--;--x;--x;printf("%d",x);}A)63B)74 C)62D)7360、下⾯程序的运⾏结果是________.#include<>voidmain(){inta,b;a=-1;b=0;do{++a;++a;b+=a;}while(a<9);printf("%d\n",b);}A)34B)24 C)26D)2561、下⾯程序段的运⾏结果是___________. for(i=1;i<=5;)printf("%d",i);i++;A)12345B)1234 C)15D)⽆限循环62、下⾯程序的输出结果是__________.#include<>voidmain(){intn=4;while(n--)printf("%d",n--);}A)20B)31 C)321D)21063、以下程序运⾏后的输出结果是________. #include<>voidmain(){inti=10,j=0;do{j=j+1;i--;}while(i>2);printf("%d\n",j);}A)50B)52 C)51D)864、有如下程序#include<>voidmain(){intx=23;do{printf("%d",x--);}while(!x);}该程序的执⾏结果是_______A)321B)23C)不输出任何内容D)陷⼊死循环65、以下程序段的执⾏结果是_______. inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A)12B)15 C)20D)2566、下⾯程序的输出结果是___________. #include<>voidmain(){inti;for(i=1;i<6;i++){if(i%2!=0){printf("#");continue;}printf("*");}printf("\n");}A)#*#*#B)#####C)*****D)*#*#*67、下⾯程序的输出结果是__________. #include<>voidmain(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf("%d%d",x--,y);}A)10192B)9876C)10990D)10109168、执⾏以下程序后,输出的结果是__________.#include<>voidmain(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}A)-1B)1C)8D)069、有如下程序#include<>voidmain(){intn=9;while(n>6){n--;printf("%d",n);}}该程序段的输出结果是__________.A)987B)876 C)8765D)987670、有如下程序#include<>voidmain(){inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf("%d\n",sum);}该程序的执⾏结果是___________.A)6B)3 C)死循环D)071、以下循环体的执⾏次数是_______ #include<>voidmain(){inti,j;for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);}A)3B)2 C)1D)072、在执⾏以下程序时,如果从键盘上输⼊:ABCdef<回车>,则输出为________. #include<>voidmain(){charch;while((ch=getchar())!='\n'){if(ch>='A'&&ch<='Z')ch=ch+32;elseif(ch>='a'&&ch<'z')ch=ch-32;printf("%c",ch);}printf("\n");}A)ABCdefB)abcDEFC)abcD)DEF 73、下⾯程序的输出结果是__________.main(){inti,k=0,a=0,b=0;for(i=1;i<=4;i++){k++;if(k%2==0){a=a+k;continue;}b=b+k;a=a+k;}printf("k=%da=%db=%d\n",k,a,b);}A)k=5 a=10b=4B)k=3 a=6b=4C)k=4 a=10b=3D)k=4 a=10b=474、执⾏下⾯程序段后,k的值是_________. inti,j,k;for(i=0,j=10;ik=i+j;A)9B)11 C)8D)1075、以下程序的功能是:从键盘上输⼊若⼲个学⽣的成绩,统计并输出最⾼成绩和最低成绩,当输⼊负数时结束输⼊。
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、把一个学生的信息(包括学号、姓名、性别、住址)放在一个结构体变量中,然后输出这个学生的信息。
#include <>int main(){struct Student{long int num;char name[20];char sex;char addr[20];}a={10101, “Li Lin ”, ‘M', “123 Beijing Road ”}; printf("NO.:%ld\nname:%s\n sex:%c\naddress:%s\n",,,,;return 0;}2、输入两个学生的学号、姓名和成绩,输出成绩较高学生的学号、姓名和成绩#include <>int main(){ struct Student{int num;char name[20];float score;}student1,student2;scanf("%d%s%f",&,, &;scanf( “ %d%s%”f ,&,, &;printf("The higher score is:\n");if >printf("%d %s %\n",,, ;else if <printf("%d %s %\n",,, ;else{printf("%d %s %\n",,, ;printf("%d %s %\n",,, ;}return 0;}3、有 3 个候选人,每个选民只能投票选一人,要求编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果。
#include <>#include <>struct Person{ char name[20];int count;}leader[3]={ “Li ”,0, “ Zhang ” ,0, “ Sun” ,0};int main(){ int i,j; c har leader_name[20];for (i=1;i<=10;i++){ scanf( “ %s” ,leader_name); for(j=0;j<3;j++)if(strcmp(leader_name, leader[j].name)==0) leader[j].count++;}for(i=0;i<3;i++)n“ ,leader[i].name, leader[i].count);return 0;}4、有n 个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。
C语言练习题
0《C程序设计》单元练习(基本概念、顺序结构)一、选择题1、C语言程序的基本单位 3 。
(1)程序行(2)语句(3)函数(4)字符2、下列说法中正确的是 3 。
(1)C语言程序总是从第一个定义的函数开始执行。
(2)在C语言程序中要调用的函数必须在main()函数中定义(3)C语言程序总是从main()函数开始执行(4)C语言程序中的main()函数必须在程序的开始部分3、设有语句int a=3,则执行语句a+=a-=a*a以后变量a的值是 4 。
(1)3 (2)0 (3)9 (4)-124、在C语言中,要求运算数必须是整数的运算符是 1 。
(1)% (2)/ (3)< (4)15、C语言中最简单的数据类型包括 2 。
(1)整型、实型、逻辑型(2)整型、实型、字符型(3)整型、字符型、逻辑型(4)整型、实型、逻辑型、字符型6、C语言提供的合法的数据类型关键字是 124 。
(1)double (2)short (3)integer (4)char7、合法的C语言字符常量是 1 。
(1)‘t’(2)“A”(3)65 (4)A8、在C语言中,合法的字符常量是 2 。
(1)‘\084’(2)‘\X43’(3)‘ab’(4)“\0”9、设有语句char a=‘\72’,则变量a是 1 。
(1)包含1个字符(2)包含2个字符(3)包含3个字符(4)说明不合法10、以下程序的输出结果是 2main(){ int i=010 ,j=10;printf(“%d,%d\n”,++i,j--);}(1)11、10 (2)9、10 (3)010,9 (4)10,911、下面程序的输出是 3 。
main(){ unsigned a=32768;print(“a=%d\n”,a);}(1)a=32768 (2)32767 (3)a=-32768 (4)a=-112、设X,Y,Z和K是int型变量,则执行表达式:X=(Y=4,Z=16,K=32)后,X的值为 3 。
《c语言程序设计基础》单元总结与练习题及答案
《c语言程序设计基础》单元总结与练习题及答案《C语言程序设计基础》课程单元总结与单元练习答案《C语言程序设计》单元总结与练习题答案《C语言程序设计基础》课程单元总结与单元练习答案单元一程序设计宏观认识单元总结提升本单元中,核心内容有C语言程序框架结构、程序的构成和程序开发过程。
通过本单元的学习,我们应该知道:1(C语言程序最基本的程序框架由两部分构成,分别是:(1) 编译预处理(2) 函数组2(C程序最大的特点就是所有的程序都是用函数来装配的,函数是构成C语言程序的基本单位,函数包括主函数、库函数和自定义函数。
函数的一般结构形式为: 函数返回值类型函数名(形式参数) //函数首部{ 说明语句; //函数体可执行语句;} 3(标识符是用来标识程序中的某个对象名字的字符序列。
C语言把标识符分为三类,即关键字、预定义标识符、用户自定义标识符。
对于用户自定义标识符的命名C语言规定:(1) 所有的用户标识符必须先定义后使用;(2) 用户标识符由字母(A~Z,a~z)、数字(0~9)、下划线“_”组成,并且首字符不能是数字 ;(3) 区分大小写;(4)不能用关键字作为用户自定义标识符,通常不使用预定义标识符作为用户自定义标识符。
4(理论上讲,程序开发过程分为四个步骤,分别为:(1) 编辑源程序 (2) 编译源程序,生成目标程序 (3) 连接目标程序及其相关模块,生成可执行文件 (4) 运行可执行文件 5(简单描述使用VC++6.0开发应用程序的步骤:《C语言程序设计基础》课程单元总结与单元练习答案如图所示:打开或编辑、编译打开或启动完成新建工程连接、运行新建文件VC++6.0图 VC++6.0开发程序的步骤总之,通过本单元的学习,应该掌握C语言程序框架结构和程序开发过程,还要对C语言程序设计的知识脉络有一定的了解。
单元练习一(选择题1(构成C语言程序的基本单位是( )。
A(框架 B(预处理 C(函数 D(语句 2(在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为( )。
c语言单元测试
c语⾔单元测试《C语⾔程序设计》单元测试(⼀)(适⽤于⾃动化专业本科学⽣)⼀、填空题(共5题,每题2分,共10分):1、C语⾔中唯⼀的三元运算符是(条件运算符? : 或 ? : )。
2、C语⾔的标识符只能由⼤⼩写字母,数字和下划线三种字符组成,⽽且第⼀个字符必须为(字母或下划线)。
3、C语⾔程序的三种基本结构是顺序结构、选择结构和(循环)结构。
4、设有:int a=3,b=4,c=5;则!(a>b)&&!c||1的值为(1 )。
5、能表达“2020&&x<30||x<-100)。
⼆、判断题,对的打√,错的打×(共5题,每题2分,共10分):(√)1、⼀个变量在内存中占据⼀定的存储单元。
(×)2、对⼏个变量在定义时赋初值可以写成:int a=b=c=3;(√)3、⾃增运算符(++)或⾃减运算符(--)只能⽤于变量,不能⽤于常量或表达式。
(√)4、在C程序中,逗号运算符的优先级最低。
(×)5、C语⾔不允许混合类型数据间进⾏运算。
三、选择题(共10题,每题2分,共20分):1、合法的字符串常量是(B )。
A)…\t? B) “A” C)…a? D)?\x32?2、合法的字符常量是(D )。
A)…\084? B) …\84? C)…ab? D)?\x43?3、(B)是C语⾔提供的合法的数据类型关键字。
A)Float B)signed C)integer D)Char4、下⾯选项中,不是合法整型常量的是(B)。
A)160 B)-0xcdg C)-01 D)-0x48a5、在C语⾔中,要求参加运算的数必须是整数的运算符是(C )。
A)/ B)* C)% D) =6、在C语⾔中,字符型数据在内存中以(A)形式存放。
A)ASCII码B)BCD码C)反码D)原码7、C语⾔中整数-8在内存中的存储形式为(D)。
A)1111111111110111 B)100000000001000C)000000000001000 D)11111111111110008、下列合法的标识符是(B)。
武汉大学C语言程序设计考试复习资料
C题库新C语言(基础知识)单元练习一1.能正确表示a和b同时为正或同时为负的逻辑表达式是______。
A. (a>=0‖b>=0)&&(a<0‖b<0)B. (a>=0&&b>=0)&&(a<0&&b<0)C. (a+b>0)&&(a+b<=0)D. a*b>0D2.一个C语言程序的执行是从______。
A. main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D. main函数开始,直到最后一个函数结束A3.可用作用户标识符的一组标识符是______。
A. voidB. a3_b3C. ForD. 2adefine _xyz -abc DOWORD IF Case sigeofB4.能正确表示a、b不能同时为零的逻辑表达式是______。
A. a==0&&b!=0||a!=0&&b==0B. (a==0)||(b==0)C. (a!=0)||(b!=0)D. a*b==0A5.已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是______。
A. a+=a-=(b=4)*(a=3)B. a=a*3=2C. x%(-3)D. y=float(i)A6.若k为int型变量,则以下语句______。
k=8567; printf("|%-06d|\n",k);A.输出格式描述不合法B.输出为|008567|C.输出为|8567 |D.输出为|-08567|C7.正确的C语言自定义标识符是______。
A.file_bakB.abc(10)C.continueD.class+3A8.设int x=8,y,z;执行y=z=x++;x=y=z;后,变量x的值是______。
c语言程序基础练习题500道(附答案)
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 0x3.下面四个选项中,均是不合法的转义符的选项是( 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) CaseD)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语言基础练习100题(含答案解析)
C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#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、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____. A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#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) 不确定的值9、以下程序的输出结果是________.#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 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#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);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#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,316、下面程序的输出结果是_______.#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,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 1220、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________.A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#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) 1027、执行下面程序后,运行结果是________.#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=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#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) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#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! Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#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) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#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) 18 D) 2034、下列程序的执行结果是_________.#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,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#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) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 2538、下列程序执行后的输出结果是________.#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) 出错信息39、有如下程序#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=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定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的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#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) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-1 46、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#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,147、执行下列程序后的输出结果是_______.#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) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#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) 10 50、执行下面程序的输出结果是________.#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) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s);A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#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,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}A) 6 3 B) 7 4 C) 6 2 D) 7 360、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1 C) 8 D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}}该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=4 74、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
第一章 C语言基础知识
第一章 C语言基础知识一、选择题1.C语言规定,必须用作为主函数名。
A)Function B)include C)main D)stdio 2.一个C程序可以包含任意多个不同名的函数,但有且仅有一个,一个C程序总是从开始执行。
A)过程B) 主函数C)函数 D)include 3.是C程序的基本构成单位。
A)函数 B) 函数和过程 C) 超文本过程 D) 子程序4.下列说法正确的是。
A)一个函数的函数体必须要有变量定义和执行部分,二者缺一不可B)一个函数的函数体必须要有执行部分,可以没有变量定义C)一个函数的函数体可以没有变量定义和执行部分,函数可以是空函数D)以上都不对5.下列说法正确的是。
A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的6.下列说法正确的是。
A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号7.在C语言中,每个语句和数据定义是用结束。
A)句号 B)逗号 C)分号 D)括号8.下列字符串是标识符的是。
A)_HJ B)9_student C)long D)LINE 1 9.以下说法正确的是。
A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main()函数中定义C)C语言程序总是从main()函数开始执行D)C语言程序中的main()函数必须放在程序的开始部分10.不是C语言提供的合法关键字。
A)switch B)print C)case D)default 12.C语言提供的合法关键字是。
A)continue B)procedure C)begin D)append13. C语言规定: 在一个源程序中, main函数的位置。
程序设计基础(C语言)
02
逻辑错误
逻辑错误是指程序中的算法或数据结构不正确,导致程序无法正常运行。
解决逻辑错误的方法是通过调试工具找出问题所在,并修改代码。
03
运行时错误
运行时错误是指在程序运行过程中出现的错误,如数组越界、内存泄漏
等。解决运行时错误的方法是通过调试工具找出问题所在,并采取相应
的措施。
05
C语言的发展和展望
其他C语言相关资源推荐
《C程序设计语言》
由C语言之父Dennis Ritchie和Brian Kernighan合著,是学习C语言的经典教材 。
《C Primer Plus》
详细介绍了C语言的基础知识和编程技巧,适合初 学者入门。
《深入理解计算机系统》
以C语言为例,深入讲解计算机系统的基本 原理和实现细节,有助于深入理解C语言的 底层机制。
自定义数据类型
可以使用typedef关键字定义自己的 数据类型,如typedef int count类型。
常见数据类型
int表示整数类型,float表示浮点数 类型,char表示字符类型。
变量声明
在C语言中,变量必须先声明后使用, 声明时需要指定变量名和数据类型。
运算符和表达式
运算符
C语言中提供了丰富的运算 符,如算术运算符(+、-、 *、/)、比较运算符(>、 <、>=、<=、==、!=)、 逻辑运算符(&&、||、!) 等。
意。
联合体
联合体是C语言中用于存储多个相同类型变量的数据结构。通过联合体,可以节省内存 空间,同时可以同时访问多个相同类型的变量。联合体的定义、初始化和访问等操作需
要注意。
文件操作
全国青少年软件编程等级考试C语言练习题
运行时错误是指在程序运行过程中出现的异常情况,通常 是由于程序试图执行非法操作或访问无效内存地址引起的 。
要点二
详细描述
运行时错误可能导致程序崩溃或产生不可预测的行为。常 见的运行时错误包括数组越界、空指针引用、内存泄漏等 。为了解决运行时错误,需要使用调试工具和技术来跟踪 程序的执行过程,并仔细检查代码中可能导致异常的部分 。
逻辑错误
总结词
详细描述
逻辑错误是指程序在执行过程中出现的错误, 通常是由于代码逻辑不正确或算法错误引起 的。
逻辑错误会导致程序无法按照预期的方式运 行,可能表现为程序行为异常、计算结果不 正确等。查找逻辑错误需要仔细检查代码的 逻辑流程,确保每个条件、循环和函数调用 都能正确执行。
运行时错误
要点一
详细描述
在C语言中,函数的参数传递方式有值传递和指针传递两种。值传递是将参数的值复制给函数中的变 量,修改不会影响原始数据;指针传递是将参数的地址传递给函数,函数通过该地址直接操作原始数 据。
数组
总结词
数组是一种用于存储相同类型数据元素的数据结构。
总结词
掌握数组的常见操作是必要的。
详细描述
数组由一系列具有相同类型的元素组成,可以通过索引访 问和修改特定位置的元素。数组的大小在声明时确定,并 且在整个程序中保持不变。
06
C语言实际项目案例分析
学生信息管理系统
总结词
一个典型的学生信息管理系统,涵盖学生基 本信息、课程、成绩等管理功能。
详细描述
该系统采用C语言编写,通过结构体和数组 等数据结构实现对学生信息的管理,包括添 加、删除、修改和查询等操作。系统还包括 课程管理和成绩录入等功能,方便学校对学
生信息进行全面管理。
专升本-计算机应用基础模拟C语言试题-01
一、单项选择题(共25小题,每题2分,共50分)以下每小题列出的四个备选答案中只有一个符合题目要求,请将正确答案填入“单项选择题答题表”对应的格中,未填入答题表,错选或多选均不得分。
1.以下叙述不正确...的是A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面2.在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是A.1O B.11 C.4 D. 133.在C程序中,有语句“int k=7,x=12;”,则下列表达式的值为3的是A. x%=k-k%5B. x%=(k-k%5)C. x%=(k%=5)D. (x%=k)-(k%=5)4.在C语言中,非法..的字符常量是A. '\t'B. '\17'C. "\n"D. '\xaa'5.若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是A. (exp==0)B. (exp!=0)C. (exp==1)D. (exp!=1)6.在C语言中,有语句“int a,b; scanf("a=%d b=%d",&a,&b);”,下列输入方法能使a的值为2、b的值为3的是A. a=2 b=3B. a=2,b=3C. 2,3D. 2 37.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是A. switch(x)B. switch((int)x);{ case 1.0: printf("*\n"); { case 1.0:printf("*\n");case 2.0: printf("**\n"); case 2.0: printf("**\n");} }C. switch(a+b)D. switch(a+b){ case 1: printf("*\n"); { case 1: printf("*\n");case 2+1: printf("**\n"); } case c: printf("**\n");} }8.以下程序段的输出结果是int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf("%d,%d\n",*p,*(p+3));A. 0,5B. 1,5C. 0,6D. 1,69.C语言中函数返回值的类型由( )决定的。
C语言第一章习题带答案
练习1-1答案选择题1.下列4组字符串中都可以用作C语言程序中的标识符的是( D )。
A.print 3d oodb B.I\m one_half start$itC.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.1001014.与47值相等的十六进制数是( A )。
A.2F B.215 C.32F D.115 5.(01101)2 + (101101)2的值是( B )。
A.(101010)2 B.(3A)16 C.(2A)16 D.576.将15向左移动2位后的值是( D )。
A.(3C)16 B.(00111100)2 C.(60)10 D.都正确7.将250与5进行按位与的结果是( A )。
A.0 B.1 C.(FF)16 D.(F0)168.将(AF)16与(78)16进行按位异或的结果是( A )。
A.(D7)16 B.(28)16 C.(D8)16 D.(27)169.将(717)8按位取反的结果是( B )。
A.(110001)2 B.(060)8 C.(60)10 D.都不正确练习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 )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一,选择1. 能正确表示a和b同时为正或同时为负的逻辑表达式是______。
A. (a>=0‖b>=0)&&(a<0‖b<0)B. (a>=0&&b>=0)&&(a<0&&b<0)C. (a+b>0)&&(a+b<=0)D. a*b>02. 一个C语言程序的执行是从______。
A. main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D. main函数开始,直到最后一个函数结束3. 可用作用户标识符的一组标识符是______。
A. voidB. a3_b3C. ForD. 2adefine _xyz -abc DOWORD IF Case sigeof4. 能正确表示a、b不能同时为零的逻辑表达式是______。
A. a==0&&b!=0||a!=0&&b==0B. (a==0)||(b==0)C. (a!=0)||(b!=0)D. a*b==05. 已知各变量的类型说明如下:int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是______。
A. a+=a-=(b=4)*(a=3)B. a=a*3=2C. x%(-3)D. y=float(i)6. 若k为int型变量,则以下语句______。
k=8567; printf("|%-06d|\n",k);A.输出格式描述不合法B.输出为|008567|C.输出为|8567 |D.输出为|-08567|7. 正确的C语言自定义标识符是______。
A.file_bakB.abc(10)C.continueD.class+38. 设int x=8,y,z;执行y=z=x++;x=y=z;后,变量x的值是______。
A. 0B. 1C. 8D. 99. 用getchar函数可以从键盘读入一个______。
A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值10. 下面四个选项中,均是非法常量的是______。
A. 'ads'B. '\\'C. -0x18D. 0xabc-0fff '\01' 01177 '\0''\0a' 12,456 0xf "a"11. 能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是______。
A. a>=10 or a<=0B. a>=0|a<=10C. a>=10 &&a<=0D. a>=10‖a<=012. 以下选项中,与k=n++完全等价的表达式是______。
A. k=n,n=n+1B. n=n+1,k=nC. k=++nD. k+=n+113. 下面四个选项中,均是合法浮点数的是______。
A. +1e+1B. -.60C. 123eD. -e35e-9.4 12e-4 1.2e-.4 .8e-403e2 -8e5 +2e-1 5.e-014. 请从以下表达式中选出a为偶数时值为0的表达式______。
A. a%2==0B. !a%2!=0C. a/2*2-2==0D. a%215. 在scanf函数语句中,地址表列由______组成。
A.表达式B.变量C.常量D.地址项16. 以下4组用户定义标识符中,全部合法的一组是______。
A. _mainB. IfC. txtD. intenclude -max REAL k_2sin turbo 3COM _00117. 在C语言中,char型数据在内存中的存储形式是______。
A. 补码B. 反码C. 原码D. ASCII码18. 以下程序#include <stdio.h>void main(){ int a; char c=10; float f=100.0; double x;a=f/=c*=(x=6.5); printf("%d %d %3.1f %3.1f\n",a,c,f,x); }运行后的输出结果是______。
A. 1 65 1 6.5B. 1 65 1.5 6.5C. 1 65 1.0 6.5D. 2 65 1.5 6.5参考答案:DABAA CACDA DABDD ADB二.判断题1. a&&b&&c逻辑表达式中,当a为假时将不再计算b和c的值了。
T2. C语言规定,可以在定义变量时,同时使变量初始化。
T3. 凡是表达式都有一个值。
T4. 或运算||参与运算的两个量都为真时,结果才为真。
F5. 如果i的原值为3,则j = ++ i,j的值为3。
F6. 如果要把常量327存入变量a中,a可以定义成float类型。
T7. 字符型变量用来存放字符常量,注意只能放2个字符。
F8. 若变量已正确定义,以下程序段的输出结果是5.169000。
x=5.16894; printf("%f\n",(int)(x*1000+0.5)/(float)1000); T 9. 以下程序的运行结果是(a=%2,b=%5)。
#include <stdio.h>main() {int a=2,b=5; printf("a=%%d,b=%%d\n",a,b); } F10. 在printf函数中,格式字符f的意义是:以小数形式输出单精度实数。
F11. 若int x=3; printf("%d",&x);则系统不会报错,会输出x的地址。
T12. 若在定义语句double a,b;之后,因为变量a,b已正确定义,因此立刻执行表达式a=b+9.381;是正确的。
F13. 在scanf("%4d",&i);语句中,输入123456789,只把123456赋予变量i 。
F14. 设int a=2,b,c;则执行c=b=a--;语句后,c的结果是2。
T15. 一般一个字符变量在内存中占一个字节。
T16. 在C语言中,++(i+1)是一个合法的算术表达式。
F17. 若有以下定义:int a=2,b=3; float x=3.5,y=2.5; 则下面表达式的值为3.500000。
(float)(a+b)/2+(int)x%(int)y T18. 在printf函数中,输出表列的各输出项之间可用冒号分隔。
F19. 已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为D。
T20. printf函数是一个标准库函数,它的函数原型在头文件"stdio.h"中。
T三.填空题1. char c='a'; printf("%d",c);的输出结果是_____97_____。
2. 字符串''w\x53\\\np\103q''的长度是____7____。
3. 设有如下定义:int x=10,y=3,z ; 则语句printf("%d\n",z=(x%y,x/y)); 的输出结果是_____3______。
4. C语言的字符输出函数是____ putchar()_____。
5. 以下程序#include<stdio.h>void main(){ char a; a='H'-'A'+'0'; printf("%c\n",a); }执行后输出结果是____7__。
6. 以下程序#include <stdio.h>void main( ){ int x=102,y=012;printf("%2d,%2d\n",x,y);}执行后输出结果是_____102,10_____。
7. 有以下语句段: int n1=10,n2=20; printf("______n1=%d\nn2=%d_____",n1.n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10n2=208. 使用getchar函数前必须包含头文件____ stdio.h_____。
9. 有以下程序#include <stdio.h>void main(){ char a,b,c,d;scanf("%c,%c,%d,%d",&a,&b,&c,&d);printf("%c,%c,%c,%c\n",a,b,c,d); }若运行时从键盘上输入:6,5,65,66<回车>。
则输出结果是____ 6,5,A,B_____。
10. 说明语句char s='\t';使s包含了____1_______个字符。
11. 若k为int 整型变量且赋值7,x为double型变量且赋值8.4,赋值表达式x = k的运算结果是_____ 7.000000______。
12. 以下程序段的输出结果是_____1234______。
int a=1234;printf("%2d\n",a);。