C语言章课后题_第1页
C语言章课后题_第2页
C语言章课后题_第3页
C语言章课后题_第4页
C语言章课后题_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第一章 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、

2、要把高级语言编写的源程序转换为目标程序,需要使用( )。A、编辑程序B、驱动程序C、编译程序D、诊断程序二、填空题1、C语言程序的基本单位是( )。2、C语言源程序文件名的后缀是( ),经过编译后生成的目标文件名的后缀是( ),经过链接之后生成的可执行文件名的后缀是( )。3、计算机语言包括( )、( )和( )。其中计算机能够直接识别的语言是( ),( )很接近人们习惯使用的自然语言和数学语言。4、按照结构化程序设计原则,常见的程序基本结构有( )、( )和( )。5、循环结构包含( )循环和( )循环。三、简单题1、什么是程序?什么是程序设计?2、解释源程序、目标程序和可执行程序的含义。3

3、、写出C语言的特点。四、编程题1、参照本章例题,编写一个C语言程序,输出以下信息:happy new year!2、参照本章例题,编写程序求两个数中的较小值。第二章 C语言程序设计基础 课后题一、选择题1、以下选项中,正确的整型数据是( )。A、1.2B、-123C、723 456D、567 8902、下面字符常量的表达形式中正确的是( )。A、“Z”B、“C、1D、3783、ch为字符型变量,执行语句“ch=C+5-4;”,将ch按字符类型输出的结果是( )。A、DB、68C、56D、不确定的值4、C语言中要求运算对象必须是整型数据的运算符是( )。A、+B、-C、%D、/5、变量a为整型、

4、b为实型、c为双精度型、d为字符型,则表达式a=a*b+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 3B、3 4C、4 4D、3 3二、填空题1、在C语言中(以16位计算机为例),一个char型数据在内存中所占的字节数为( ),其数值范围是( );一个int型数据在内存中所占的字节数为( ),其数值范围是( );一个lo

5、ng型数据在内存中所占的字节数为( ),其数值范围是( );一个float型数据在内存中所占字节数为( ),其数值范围是( )。2、字符常量使用一对( )界定单个字符,而字符串常量使用一对( )来界定若干个字符的序列。3、设“floatx=2.5;int a=7;float y=4.7;”,则表达式x+a%3*(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的值是(

6、 ),表达式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(“a%c b%ctc%ctabcn”,c1,c2,c3); printf(“tb%c %c”,c4,c5

7、); 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语言程序的执行是从第一个函数开始的,到程序的mai

8、n函数结束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、55B、100C、60D、1054、设有“int x=11;”,则表达式(x+*1/3)的值是( )。A、3B、4C、11D、125、能正确表达逻辑关系“a>=10”或“a<=0”的C语言表达式是( )。A、a>=10 or a<=0B、a>=0 | a<=10C、a>=10 && a<=0D

9、、a>=10 | a<=06、已有定义“int x=3,y=4;”,则表达式x>y&&y的值是( )A、trueB、0C、falseD、17、有如下语句,则当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、6B、7C、8D、语法错误8、若有以下程序,则语句a=a+1执行的次数是( )int main() int x=1,a=1; do a=a+1;while(x);return 0;A、0B

10、、1C、无限次D、有限次9、以下程序的输出结果是( )int main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=1;i<3;i+)for(j=0;j<=i;j+) s+=aij;printf(“%dn”,s);return 0;A、18B、19C、20D、2110、C语言中,二维数组在内存中的存放顺序是( )A、行优先B、列优先C、由编译系统决定D、由用户决定11、以下程序的输出结果是( )int main()char ch=1,2,0,3,4,0;printf(“%s”,ch);return 0;A、1234B、12034C、12D、有语法错误12、

11、以下程序执行后输出的结果是( )void f(int x,int y) int t;if(x<y)t=x;x=y;y=t;int main()int a=4,b=3,c=5;f(a,b);f(a,c);f(b,c);printf(“%d,%d,%dn”,a,b,c);return 0;A、3,4,5B、5,3,4C、5,4,3D、4,3,513、执行如下程序段后,a的值为( )int *p,a=10,b=1;p=&a;a=*p+b;A、12B、11C、10D、编译出错14、以下程序执行后的输出结果是( )int main() int x8=8,7,6,5,0,0,*s; s=x+

12、3; printf(“%dn”,s2); return 0;A、随机值B、0C、5D、615、若要将text.txt文件打开用于追加信息,则以下格式正确的是( )A、fp=fopen(“text.txt”,”r”);B、fp=fopen(“text.txt”,”r+”);C、fp=fopen(“text.txt”,”a+”);D、fp=fopen(“text.txt”,”w”);16、有定义语句“double x,*p;”,则以下表达式中正确的是( )A、*p=&x;B、p=x;C、p=&x;D、*p=x;17、下面程序的正确输出结果是( )。(规定用U表示空格)int mai

13、n() float x=5.783,y=-10.2345; printf(“x=%-8.2f,y=%-8.2fn”,x,y); return 0;A、x=5.78UUUU,y=-10.23UUB、x=5.78,y=-10.23C、5.78,-10.23D、x=UUUU5.78,y=UU-10.2318、sizeof(float)是( )A、一个浮点表达式B、一个不合法的表达式C、函数调用结果,是一个整型表达式D、一种函数调用19、下列数据中属于字符串常量的是( )A、AB、”ABC”C、ABCD、ABC20、用下面的scanf函数输入数据,使得i=10,k=15,正确的键盘输入方法是( )(用

14、CR表示回车,U表示空格)int main() int i,k; scanf(“i=%d,k=%d”,&i,&k);return 0;A、i=10CRk=15CRB、i=10,k=15CRC、10U15CRD、10,15CR二、判断题1、在一个C语言程序中,main函数必须出现在所有函数之前。( )2、引用数组元素时,下标可以是整型常量或整型表达式。 ( )3、预处理命令都必须以“#”开头。 ( )4、函数的形参都属于全局变量 。 ( )5、静态(static)类型变量在函数调用结束后仍然存在。 ( )6、函数定义可以嵌套,函数调用不可以嵌套。 ( )7、字符类型变量只能存储一

15、个字符。 ( )8、从功能上讲,“putchar(c);”等价与“printf(“%c”,c);”。 ( )9、表达式(7-1)*2!=10的值为1。 ( )10、实参向形参传递值可以是单向传递,也可以是双向传递。 ( )三、填空题1、若从键盘输入58,则以下程序的输出结果是 。int main() int a; scanf(“%d”,&a); if(a>50) printf(“%d”,a);if(a>40) printf(“%d”,a);if(a>30) printf(“%d”,a);return 0;2、以下程序的输出结果是 。int main() int x=2

16、3; do printf(“%d”,x-);while(!x);return 0;3、将程序补充完整(要求,输入任意两个整数a和b,若b不等于0,则输出a/b的值,结果保留两位小数)。#include<stdio.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的和)。#include<stdio.h>int main() int

17、 i,sum;for( ;i<=100;i+) sum+=i;printf(“%dn”,sum);return 0;5、将程序补充完整(输入两个整数并求最大值)。#include<stdio.h>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=x>y?x:y; return z;四、编程题1、用数组计算fibonacci数列的前20

18、个数,并按每行打印5个数的格式输出。2、“百钱百鸡”问题是一个很经典的穷举问题。公元前5世纪,我国古代数学家张丘建在算经中提出,鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?编程求解该问题。测试二一、单项选择题1、以下描述中正确的是( )A、C语言程序由过程和函数组成的B、C语言函数可以嵌套调用,例如:fun(fun(x)C、C语言函数不可以单独编译D、C语言中除了main函数,其他函数不可以作为单独文件形式存在2、以下C语言用户标识符中,不合法的是( )。A、_1B、AaBcC、a_bD、ab3、若有定义“double a=22;int i=0,k=18;”,则

19、不符合C语言规定的赋值语句是( )。A、a=a+,i+;B、i=(a+k)<=(i+k);C、i=a%11;D、i=!a;4、以下选项中,与“if(a=1)a=b;else a+;”语句功能不同的switch语句是( )。A、switch(a) case :a=b;break;default:a+;B、switch(a=1) case 0 :a=b;break;case1:a+;C、switch(a) default:a+;break;case 1:a=b;D、switch(a=1) case 1:a=b;break;case 0:a+;5、有以下程序段,为避免此程序段陷入死循环,从键盘

20、输入的数据应该是( )。int n,t=1,s=0;scanf(“%d”,&n);dos=s+t;t=t-2;while(t!=n);A、任意正奇数B、任意负偶数C、任意负奇数D、任意正偶数6、以下程序运行后的输出结果是( )#include<stdio.h>int main() int i,j,m=1;for(i=1;i<3;i+) for(j=3;j>0;j-) if(i*j)>3)break; m*=i*j; printf(“m=%dn”,m);return 0;A、m=6B、m=2C、m=4D、m=57、以下程序运行后的输出结果是( )#inclu

21、de<stdio.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,18B、8,11C、7,11D、10,148、以下关于return语句的叙述中正确的是( )A、一个自定义函数中必须有一条return语句B、一个自定义函数中可以根据不同情况设置多条return语句C、定义成void类型的函数中可以有带返回值的return语句D、没有return语句的自定义函数在执行结束时不能返回到调用处9、下列选项中,能正确定义数组的语句是( )A、int num0.2008

22、;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个元素的指针数组ptC、定义了一个名为*pt、具有3个元素的整型数组D、定义了一个名为pt的指针变量,它可以指向每行有3个整型元素的二维数组11、以下程序运行后的输出结果是( )#include<stdio.h>int main()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i<5;

23、i+)s=s+abi;printf(“%dn”,s);return 0;A、6B、10C、11D、1512、以下程序执行后输出的结果是( )#include<stdio.h>#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、0B、-12C、-20D、1013、14、以下程序执行后的输出结果是( )#include<stdio.h>int main() int a=2,b=2,c=2; printf(“%dn”,a/b&c);retur

24、n 0;A、0B、1C、2D、314、设有定义“int a=1,b=2,c=3;”,以下语句中,执行效果与其他3个不同的是( )A、if(a>b)c=a,a=b,b=c;B、if(a>b)c=a,a=b;b=c;C、if(a>b)c=a;a=b;b=c;D、if(a>b)c=a;a=b;b=c;15、以下程序运行后的输出结果是( )#include<stdio.h>int main() int c=0,k;for(k=1;k<3;k+) switch(k) default:c+=k; case 2:c+;break; case 4:c+=2;break

25、; printf(“%dn”,c);return 0;A、3B、5C、7D、916、以下程序的输出结果是( )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,10B、4,1C、1,10D、2,917、下面程序的正确输出结果是( )。int main() char str5=”ABCD”,*p=str; printf(“%dn”,*(p+4); return 0;A、68B、DC、0D、018、下面各语句中,能正确进行字符串初始化操作的语句是( )A、char s15

26、=“ABCDE”;B、char s26=A,B,C,D,E;C、char st=“ABCDE”;D、char s5=A,B,C,D,E;19、若有说明“int a34=0;”,则下面正确的叙述是( )A、数组a中每个元素均可得到初值0B、只有元素a00可得到初值0C、数组a中各个元素都可以得到初值,但其值不一定是0D、此说明语句不正确20、若有说明“int a34;”,则对数组a中元素的非法引用是( )A、a13B、a04C、a02*1D、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、以下程序的运行结果是 。#include<stdio.h>int main() in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论