C语言1-2章课后题.pdf
第一章 C 语言概述 课后题 一、选择题 1、一个 C 语言程序总是从()。A、主过程开始执行 B、主函数开始执行 C、子程序开始执行 D、主程序开始执行 2、C 语言能直接执行的程序是().A、源程序 B、汇编程序 C、目标程序 D、可执行程序 3、以下叙述中正确的是()。A、C 语言程序中的注释部分可以出现在程序中任意合适的地方 B、花括号“”和“”只能作为函数体的定界符 C、构成 C 语言程序的基本组成单位是函数,所有函数名都可以由用户命名 D、分号是 C 语言语句之间的分隔符,不是语句的一部分 4、以下选项中,不合法的 C 语言程序函数体是()。A、;B、C、printf(“computer”);D、int a=1;5、要把高级语言编写的源程序转换为目标程序,需要使用()。A、编辑程序 B、驱动程序 C、编译程序 D、诊断程序 二、填空题 1、C 语言程序的基本单位是()。2、C 语言源程序文件名的后缀是(),经过编译后生成的目标文件名的后缀是(),经过链接之后生成的可执行文件名的后缀是()。3、计算机语言包括()、()和()。其中计算机能够直接识别的语言是(),()很接近人们习惯使用的自然语言和数学语言。4、按照结构化程序设计原则,常见的程序基本结构有()、()和()。5、循环结构包含()循环和()循环。三、简单题 1、什么是程序?什么是程序设计?2、解释源程序、目标程序和可执行程序的含义。3、写出 C 语言的特点。四、编程题 1、参照本章例题,编写一个 C 语言程序,输出以下信息:happy new year!2、参照本章例题,编写程序求两个数中的较小值。第二章 C 语言程序设计基础 课后题 一、选择题 1、以下选项中,正确的整型数据是()。A、1。2 B、-123 C、723 456 D、567 890 2、下面字符常量的表达形式中正确的是()。A、“Z”B、“C、1 D、378 3、ch 为字符型变量,执行语句“ch=C+54;”,将 ch 按字符类型输出的结果是().A、D B、68 C、56 D、不确定的值 4、C 语言中要求运算对象必须是整型数据的运算符是().A、+B、C、D、/5、变量 a 为整型、b 为实型、c 为双精度型、d 为字符型,则表达式 a=ab+d-c 的类型是()。A、整型 B、实型 C、双精度型 D、字符型 6、有以下定义语句,编译时会出现编译错误的是()。A、char a=a;B、char a=n;C、char a=aa;D、char a=x2d;7、设有语句“int a=3;”,执行语句 printf(“%d%d,a+1,a+);后输出的值是()。A、4 3 B、3 4 C、4 4 D、3 3 二、填空题 1、在 C 语言中(以 16 位计算机为例),一个 char 型数据在内存中所占的字节数为(),其数值范围是();一个 int 型数据在内存中所占的字节数为(),其数值范围是();一个 long 型数据在内存中所占的字节数为(),其数值范围是();一个 float 型数据在内存中所占字节数为(),其数值范围是().2、字符常量使用一对()界定单个字符,而字符串常量使用一对()来界定若干个字符的序列。3、设“floatx=2.5;int a=7;float y=4.7;”,则表达式 x+a3(int)(x+y)2/4 的值为()。4、已知“char a=a,b=b,c=c,i;”,则表达式 i=a+b+c 的值为()。5、假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为()。6、若有定义“int m=5,n=3;”,则表达式 m/=n+4 的值是(),表达式 m=(m=1,n=2,n-m)的值是(),表达式 m+=m=(m=1)(n=2)的值是().三、简答题 1、简述a和”a的区别。2、已知,“int m=12,m=15;”,为什么整型变量 m 的值在运算后不是当初的 12,而是 15?3、将下面各数用八进制和十六进制数表示。十进制数:32 1 -32768 2002 -128 0 八进制数:十六进制数:4、写出以下程序的运行结果 int main()char c1=a,c2=b,c3=c,c4=101,c5=116;printf(“ac bctcctabcn”,c1,c2,c3);printf(“tb%c%c,c4,c5);return 0;5、写出以下程序的运行结果。int main()int i,j,m,n;i=8;j=10;m=+i;n=j+;printf(“d,d,d,%d”,i,j,m,n);return 0;四、编程题 已知“int x=10,用 2;”,写出将 x 和 y 的值相互交换的语句。测试一 一、单项选择题 1、以下描述中正确的是()A、C 语言程序的执行是从 main 函数开始的,到程序的最后一个函数结束 B、C 语言程序的执行是从第一个函数开始的,到程序的最后一个函数结束 C、C 语言程序的执行是从 main 函数开始的,到程序的 main 函数结束 D、C 语言程序的执行是从第一个函数开始的,到程序的 main 函数结束 2、若有语句“char a;”,并要将字符 a 赋给变量 a,则下列赋值表达式正确的是()。A、a=a;B、a=a;C、a=”97”;D、a=97;3、若有语句“int a=5;”,则执行语句“a+a*=10;”后,a 的值是().A、55 B、100 C、60 D、105 4、设有“int x=11;,则表达式(x+*1/3)的值是()。A、3 B、4 C、11 D、12 5、能正确表达逻辑关系“a=10”或“a=0的 C 语言表达式是()。A、a=10 or a=0 B、a=0|a=10 C、a=10&a=10|ay&y 的值是()A、true B、0 C、false D、1 7、有如下语句,则当 x=5 是,c 的值是()int c=5,x;scanf(“d”,&x);switch(x+1)case 6:c+;case 8:c+;break;default:c+=3;printf(“d,c);A、6 B、7 C、8 D、语法错误 8、若有以下程序,则语句 a=a+1 执行的次数是()int main()int x=1,a=1;do a=a+1;while(x);return 0;A、0 B、1 C、无限次 D、有限次 9、以下程序的输出结果是()int main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i3;i+)for(j=0;j50)printf(“d,a);if(a40)printf(“d”,a);if(a30)printf(“%d”,a);return 0;2、以下程序的输出结果是 。int main()int x=23;do printf(“d”,x-);while(!x);return 0;3、将程序补充完整(要求,输入任意两个整数 a 和 b,若 b 不等于 0,则输出 a/b 的值,结果保留两位小数)。#includestdio。h int main()int a,b;float c;printf(“input a,b:”);scanf(“d,d”,a,&b);if()c=1.0*a/b;printf(“%。2fn,c);return 0;4、将程序补充完整(用 for 循环求 1-100 的和).#includestdio。h int main()int i,sum;for(;i=100;i+)sum+=i;printf(“%dn,sum);return 0;5、将程序补充完整(输入两个整数并求最大值).include int main()int a,b,c;printf(“input two numbers:n);scanf(“d,d”,a,b);c=;printf(“max=dn,c);return 0;int max(int x,int y)int z;z=xy?x:y;return z;四、编程题 1、用数组计算 fibonacci 数列的前 20 个数,并按每行打印 5 个数的格式输出。2、“百钱百鸡”问题是一个很经典的穷举问题.公元前 5 世纪,我国古代数学家张丘建在算经中提出,鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?编程求解该问题.测试二 一、单项选择题 1、以下描述中正确的是()A、C 语言程序由过程和函数组成的 B、C 语言函数可以嵌套调用,例如:fun(fun(x)C、C 语言函数不可以单独编译 D、C 语言中除了 main 函数,其他函数不可以作为单独文件形式存在 2、以下 C 语言用户标识符中,不合法的是()。A、_1 B、AaBc C、a_b D、ab 3、若有定义“double a=22;int i=0,k=18;”,则不符合 C 语言规定的赋值语句是()。A、a=a+,i+;B、i=(a+k)int main()int i,j,m=1;for(i=1;i3;i+)for(j=3;j0;j)if(i*j)3)break;m*=i*j;printf(“m=dn”,m);return 0;A、m=6 B、m=2 C、m=4 D、m=5 7、以下程序运行后的输出结果是()#includestdio.h int main()int a=1,b=2;for(;a=8;a+)b+=a;a+=2;printf(“d,dn”,a,b);return 0;A、9,18 B、8,11 C、7,11 D、10,14 8、以下关于 return 语句的叙述中正确的是()A、一个自定义函数中必须有一条 return 语句 B、一个自定义函数中可以根据不同情况设置多条 return 语句 C、定义成 void 类型的函数中可以有带返回值的 return 语句 D、没有 return 语句的自定义函数在执行结束时不能返回到调用处 9、下列选项中,能正确定义数组的语句是()A、int num0。2008;B、int num;C、int N=2008;int numN;D、define N 2008 int numN;10、若有定义“int(*pt)3;”,则下列说法正确的是()A、定义了基类型为 int 的 3 个指针变量 B、定义了基类型为 int 的具有 3 个元素的指针数组 pt C、定义了一个名为pt、具有 3 个元素的整型数组 D、定义了一个名为 pt 的指针变量,它可以指向每行有 3 个整型元素的二维数组 11、以下程序运行后的输出结果是()include define SUB(a)(a)-(a)int main()int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(“%dn”,d);return 0;A、0 B、-12 C、20 D、10 13、14、以下程序执行后的输出结果是()includeb)c=a,a=b,b=c;B、if(ab)c=a,a=b;b=c;C、if(ab)c=a;a=b;b=c;D、if(ab)c=a;a=b;b=c;15、以下程序运行后的输出结果是()#includestdio。h int main()int c=0,k;for(k=1;k3;k+)switch(k)default:c+=k;case 2:c+;break;case 4:c+=2;break;printf(“%dn”,c);return 0;A、3 B、5 C、7 D、9 16、以下程序的输出结果是()int main()int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(“%d,dn”,(p+2),p+9);return 0;A、3,10 B、4,1 C、1,10 D、2,9 17、下面程序的正确输出结果是().int main()char str5=”ABCD”,*p=str;printf(“%dn”,*(p+4));return 0;A、68 B、D C、0 D、0 18、下面各语句中,能正确进行字符串初始化操作的语句是()A、char s15=“ABCDE”;B、char s26=A,B,C,D,E;C、char st=“ABCDE”;D、char s5=A,B,C,D,E;19、若有说明“int a3 4=0;”,则下面正确的叙述是()A、数组 a 中每个元素均可得到初值 0 B、只有元素 a0 0可得到初值 0 C、数组 a 中各个元素都可以得到初值,但其值不一定是 0 D、此说明语句不正确 20、若有说明“int a3 4;”,则对数组 a 中元素的非法引用是()A、a13 B、a04 C、a0 2*1 D、a4-20 二、判断题 1、break 是结束本次循环,而 continue 是结束所有的循环 ()2、在 C 语言中,变量不区分大小写.()3、不同的函数中可以使用相同的变量名.()4、形式参数是局部变量。()5、若用数组名作为函数的实参,传递给形参的是数组第一个元素的值.()6、C 语言是低级语言。()7、在 C 语言中,每个函数都必须要有一个且只有一个 main 函数。()8、在 C 语言中,整型常数表示的方法有 3 种。()9、定义一个静态变量时没有必要对它进行初始化。()10、假如 x 和 y 为 double 型,则表达式“x=2;y=x+3/2”;的值是 3.()三、填空题 1、以下程序的运行结果是 .#includestdio.h int main()int i,j,X=0;for(i=0;i2;i+)X+;for(j=0;j3;j+)if(j%2)continue;X+;X+;printf(“X=%dn,X);return 0;2、以下程序的输出结果是 。#includestdio.h void fun1(int x)x=20;void fun2(int b4)int j;for(j=0;j4;j+)bj=j;int main()int x=23=10;int a4=1,2,3,4,k;fun1(x);printf(“x=%dn,x);fun2(a);for(k=0;k4;k+)pirntf(“dn,ak);return 0;3、以下程序运行时输入:123456789 ,则程序运行结果是 .#includestdio。h int main()int x,y;scanf(“2d4s2d,x,y);printf(“d,y-x);return 0;4、以下程序的功能是输入任意整数 n 后,输出 n 行由大写字母 A 开始构成的三角形字符阵列图形.例如,输入整数 5 时(注意:n 不得大于 10),程序运行结果如下:填空完成该程序。#include int main()int i,j,n;char ch=A;scanf(“%d”,n);if()ABCDE FGHI JKL MN O for(i=1;i=n;i+)for(j=1;j=;j+)printf(“2c,ch);else printf(“n is too larger!n”);printf(“n);return 0;四、编程题 1、规定一个工人每个月的工作时间为 160 小时,每小时工资为 5 元,如果加班,每小时工资增加 4 元。编程计算并打印此工人一个月的工资,要求由键盘输入工作时间.2、输入 20 个学生的成绩,求出其中成绩大于平均成绩的学生的人数,并对 20 名学生的成绩按从高到低进行排序.