第一章 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、 B、-123 C、723 456 D、567 890
2、下面字符常量的表达形式中正确的是( )。 A、“Z” B、“\\’ C、‘1’ D、‘\\378’
3、ch为字符型变量,执行语句“ch=’C’+‘5’-‘4’;”,将ch按字符类型输出的结果是( )。 A、D B、68 C、56
D、不确定的值
4、C语言中要求运算对象必须是整型数据的运算符是( )。 A、++ B、-- C、% D、/ 5、变量a为整型、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 3 B、3 4 C、4 4 D、3 3 二、填空题 1、在C语言中(以16位计算机为例),一个char型数据在内存中所占的字节数为( ),其数值范围是( );一个int型数据在内存中所占的字节数为( ),其数值范围是( );一个long型数据在内存中所占的字节数为( ),其数值范围是( );
一个float型数据在内存中所占字节数为( ),其数值范围是( )。
2、字符常量使用一对( )界定单个字符,而字符串常量使用一对( )来界定若干个字符的序列。
3、设“floatx=;int a=7;float y=;”,则表达式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的值是( ),表达式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%c\\tc%c\\tabc\\n”,c1,c2,c3); printf(“\\t\\b%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<=0 D、a>=10 || a<=0
6、已有定义“int x=3,y=4;”,则表达式x>y&&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 a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++) s+=a[i][j];
printf(“%d\\n”,s); return 0; } A、18 B、19 C、20 D、21
10、C语言中,二维数组在内存中的存放顺序是( ) A、行优先 B、列优先
C、由编译系统决定 D、由用户决定
11、以下程序的输出结果是( ) int main() {
char ch[]={‘1’,’2’,’\\0’,’3’,’4’,’\\0’}; printf(“%s”,ch); return 0; }
A、1234 B、12034 C、12
D、有语法错误
12、以下程序执行后输出的结果是( ) void f(int x,int y) {