C语言程序设计第二章作业参考答案

合集下载

c语言程序设计第二章课后参考答案

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

C语言程序设计第二章作业参考答案

C语言程序设计第二章作业参考答案

《C语言程序设计》第2章作业布置日期:2017-10-23 截止日期:2017-11-3一、单选题(每小题4分,共100分)1、以下说法中正确的是____。

A、C语言程序总是从第一个函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、若一个void型函数定义中没有return语句,则调用该函数时,函数______。

A、没有返回值B、返回若干个系统默认值C、返回一个用户所希望的函数值D、返回一个不确定的值3、一个C程序的执行是________。

A、从本程序的main函数开始,到本程序的main函数结束B、从本程序的main函数开始,到本程序的最后一个函数结束C、从本程序的第一个函数开始,到本程序的最后一个函数结束D、从本程序的第一个函数开始,到本程序的main函数结束4、若已定义x和y为double类型,且x=1,则表达式y=x+3/2的值是______。

A、1B、2C、2.0D、2.55、设a为整型变量,能表达数学关系10<a<15的C语言表达式是______。

A、10<a<15B、a>10&&a<15C、a>10 and a<15D、a>10||a<15</a<156、若k是int型变量,且有下面的程序片段:k=-3;if(k=3) printf("####");else printf("&&&&");上面程序片段的输出结果是A、####B、&&&&C、####&&&&D、上面程序段语法错误,无输出结果7、下面程序的输出是:main(){int x=10,y=3;double z;z=x/y;printf("%6.2f\n",z);}A、0B、3.00C、3.33D、18、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:A、a<>0B、a!=0C、a>0 OR a<0D、a>0 AND a<09、设j为int 型变量,则下面for循环语句的执行结果是:for(j=10;j>3;j=j-1){ if(j%3!=0)j=j-1;j=j-2;printf("%d",j);}A、6 3B、7 4C、6 2D、7 310、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的正确形式是:int b,c; float a;scanf("%f,%d,%d",&a,&b,&c);A、5.0 4 3B、5.0, 4, 3C、5.0, 4, c=3D、a=5.0, b=4, c=311、若执行以下语句后,celsius变量的结果是______。

C语言程序设计课后习题答案

C语言程序设计课后习题答案
char c1,c2;与int c1, c2; 是否无条件地等价?
解:
#include&lt;stdio.h&gt;
void main()
{
char c1,c2;
c1=getchar();
c2=getchar();
putchar(c1);putchar(‘\n&#39;);putchar(c2);putchar(‘\n&#39;);
C语言程序设计(第2版)课后习题答案
第一章
1.请参照本章例题,编写一个C程序,输出以下信息:
**************************
Very good!
**************************
printf(&quot;\n&quot;);
printf(&quot;**************************&quot;);
}
2.编写一个C程序,输入a、b、c三个值,输出其中最大值。
解:
#include&lt;stdio.h&gt;
void main()
{
int a,b,c,temp,max;
printf(&quot;请输入3个整数: &quot;);
scanf(&quot;%d,%d,%d&quot;,&amp;a,&amp;b,&amp;c);
temp=(a&gt;b)?a:b;
max=(temp&gt;c)?temp:c;
#include&lt;math.h&gt;

C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业1①.本题要求编写程序,输出一个短句“Welcome to You!”#include<stdio.h>int main(){printf("Welcome to You!\n");return 0;}②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。

计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include<stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr-32)/9;printf("fahr = 100,celsius = %d\n",celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值。

题目保证输入与输出均在整型范围内。

在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio.h>int main(){int a,b,c,d,Sum;double Average;scanf("%d %d %d %d",&a,&b,&c,&d);Sum = a + b + c + d;Average = (a + b + c + d)/4.0;printf("Sum = %d,Average = %.1f\n",Sum,Average);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

在4行中按照格式“A 运算符B = 结果”顺序输出和、差、积、商。

c语言与程序设计-第2章课后习题参考答案

c语言与程序设计-第2章课后习题参考答案

2.1 下列哪些是词法记号?关键字(是)注释空白符八进制常量(是)三字符序列字符串常量(是)括号(是)2.2 C编译器可将下列每一个源字符串分解为哪些记号?(不必考虑记号组合是否合法)(1)x+++y x, ++, +, y(2)-0xabL -, 0xabL(3) 2.89E+12L 2.89E+12L(4)"String+\"FOO\"" " String+ \"FOO\""(5)x**2 x, *, *, 2(6)"X??/" "X??/"(7)a?b a, ?, b(8)x--+=y x, --, +=, y(9)intx=+10 intx, =, +, 10(10)"String""FOO" "String", "FOO"(这道题当时改的时候有几个小题改得有错误,注意!)2.3 下列哪些不是标识符,为什么?标识符由字母、数字和下划线组成,但首字符必须是字母或下划线。

4th 不是,以数字开头;sizeof 不是(标准C的关键字)_limit 是_is2 是xYshould 是x*y 不是,* 非法o_no_o_no 是temp-2 不是,- 非法isn't 不是,' 非法enum 不是(标准C的关键字。

注:关键字也称为保留字,是被系统赋予特定含义并有专门用途的标识符。

关键字不能作为普通标识符,但可以作为宏名。

所有预处理均发生在识别这些关键字之前。

)2.4 在下列表示中,哪些是合法常数,哪些是非法常数?对于合法常数,指出其类型;对于非法常数,说明其错误原因。

2L 合法,long长整型''' 不合法,单引号组中的单引号前需要转义字符.12 合法,double双精度浮点型0x1ag 不合法,g不是16进制数中的符号,也不表示任何类型33333 合法,int整形"a" 合法,字符串常量"" 合法,字符串常量0.L 合法,long double长双精度浮点型E20 不合法,缺少尾数部分0377UL 合法,unsigned long无符号长整型'\18' 不合法,存在非8进制位'\0xa' 不合法,不符合十六进制字符码表示规则\xhh0x9cfU 合法,unsigned int无符号整形'\45' 合法,char字符型1.E-5 合法,double双精度浮点型'\0' 合法,char字符型3.F 合法,float浮点型"3'4"" 不合法,缺少转义符'"' 合法,char字符型(P35,双引号作为字符常量时既可用图形符号也可用转义序列表示)'\a' 合法,char字符型2.6 以下的变量声明语句中有什么错误?(1)int a; b = 5; 第一个分号改为逗号int a, b=5;(2)doubel h; 关键字错误double h;(3)int x = 2.3; 类型错误float x = 2.3;(4)const long y; 需要赋初值const long y = 0;(5)float a = 2.5*g; g未定义变量int g = 1; float a = 2.5*g;(6)int a = b = 2; b未定义变量int a = 2, b = 2;2.7 设变量说明为:int a = 1, b = 2, c = 3, d;double x = 2.0; y = 7.7;请给出下列表达式的值。

c语言程序设计教程(第2版)完整编程答案1-8章

c语言程序设计教程(第2版)完整编程答案1-8章

9 c 32 ,程序中有多处错误, 5
请改正错误后运行正确的程序。 答:#include <stdio.h> #include <stdio.h> main() main() {float c=0,f=0; {float c=0,F=0; printf("input c:"); printf("input c:"); scanf("%f",&c); scanf("%f", c); f=((float)9/5)*c+32; f=(9/5)·c+32; printf("c=%f,f=%f\n",c,f); print("c=%f,f=%f\n",&c,&f); } } 扩展:把程序功能改为:输入华氏温度 f,计算摄氏温度 c。 #include <stdio.h> main()
0 x 2 2、编写程序,求下面分段函数的值,要求 x 的值从键盘输入。 y 2 x 3 10
(当x 0时) (当0 x 5时) (当5 x 10时) (当x 10时)
#include <stdio.h> main() { double x=0.0,y=0.0; int k=0; scanf("%lf",&x); k=1*(x<0)+2*(x>=0&&x<5)+3*(x>=5&&x<10)+4*(x>=10); switch(k) { case 1: y=0;break; case 2: y=x+2;break; case 3: y=x*x-3;break; case 4: y=10;break; } printf("x=%lf,y=%lf\n",x,y); } 训练 3.1:输入一个字符,如果是数字字符,则转换成对应的数字。 #include <stdio.h> main() { char ch='\0'; int a=-1; ch=getchar(); if(ch>='0'&&ch<='9') { a=ch-'0'; printf("charter %c ,digit:%d\n",ch,a); } else printf("%c is not digit\n",ch); } 扩展:将程序的功能改为:如果所输入的字符为大写字母,则将其转换为小写字母。请使用库函数判断和转 换。 #include <stdio.h> #include <ctype.h> main() { char ch='\0'; ch=getchar(); printf("the input charter is %c \n",ch); if(isupper(ch)) { ch=tolower(ch); printf("The corresponding lowercase letter is %c\n",ch); } else printf("It is not the capital letter!\n"); } 训练 3.2:求一元二次方程 ax2+bx+c=0 的实根(要求 a,b,c 的值从键盘输入,a≠0) #include <stdio.h> #include <math.h> main()

C语言程序设计:现代方法(第2版)第二章全部习题答案

C语言程序设计:现代方法(第2版)第二章全部习题答案

C语⾔程序设计:现代⽅法(第2版)第⼆章全部习题答案前⾔本⼈在通过《C语⾔程序设计:现代⽅法(第2版)》⾃学C语⾔时,发现国内并没有该书完整的课后习题答案,所以就想把⾃⼰在学习过程中所做出的答案分享出来,以供⼤家参考。

这些答案是本⼈⾃⼰解答,并参考GitHub上相关的分享和相关资料。

因为并没有权威的答案来源,所以可能会存在错误的地⽅,如有错误还希望⼤家能够帮助指出。

第⼆章练习题和编程题答案练习题2.2节1.建⽴并运⾏由Kernighan和Ritchie编写的著名的“hello world”程序:1 #include <stdio.h>2 int main(void)3 {4 printf("hello world!\n");5 }在编译时是否有警告信息?如果有,需要如何改进呢?答:如果使⽤部分⽐较⽼的编译器如turbo C等,会⽣成警告信息,指出main函数并没有返回任何值。

这是因为在声明main函数时使⽤了int,表明函数会返回⼀个整型数值,这个数值为任意(因为main后⾯是void)。

但是上⾯的代码中并没有return语句,所以并不会返回任何值。

加⼊return语句后便可消除警告。

1 /* 加⼊return语句后的版本 */2 #include <stdio.h>3 int main(void)4 {5 printf("Hello world!\n");6 return 0;7 }如果是使⽤IDE中的编译器,且IDE版本⽐较新(如本⼈⽬前使⽤的Code:Blocks)即使没有return语句,编译器也不会⽣成警告信息。

2.思考下⾯的程序:1 #include <stdio.h>2int main(void)3 {4 printf("Parkinson's Law:\nWork expands so as to ");5 printf("fill the time\n");6 printf("available for its completion.\n");7return0;8 }(a)请指出程序中的指令和语句。

c语言第二章课后习题答案

c语言第二章课后习题答案

第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。

(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L【答案】D2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。

(A)0 (B) 1 (C) 5 (D) 6【答案】A3.以下()是正确的字符常量。

(A)"c" (B) '\\'' (C) 'W' (D) "\32a"【答案】C4.以下()是不正确的字符串常量。

(A) 'abc' (B) "12'12" (C) "0" (D) " "【答案】A5.以下是正确的浮点数的是()。

(A)e3 (B) .62 (C) 2e4.5 (D) 123【答案】B6.若有定义:int a=2; 则正确的赋值表达式是()。

(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3【答案】A7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为()。

(A)111122233 (B)1111,222,33(C)1111 222 33 (D)1111+222+33【答案】D8.已有如下定义和输入语句:int a,b;scanf("%d,%d",&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22【答案】B9.已有如下定义和输入语句,int a; char c1,c2;scanf("%d%c%c",&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。

C语言PTA平台习题与答案

C语言PTA平台习题与答案

第二章作业1①.本题要求编写程序,输出一个短句“Welcome to You!”#include〈stdio.h>int main(){printf(”Welcome to You!\n”);return 0;}②。

本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

fahr = 100, celsius = 计算所得摄氏温度的整数值#include〈stdio.h>int main(){int fahr = 100;int celsius = 5*(fahr—32)/9;printf("fahr = 100,celsius = %d\n”,celsius);return 0;}第二章作业2①求整数均值本题要求编写程序,计算4个整数的和与平均值.题目保证输入与输出均在整型范围内。

在一行中按照格式“Sum = 和; Average = 平均值"顺序输出和与平均值,其中平均值精确到小数点后一位#include<stdio。

h〉int main(){int a,b,c,d,Sum;double Average;scanf("%d %d %d %d",&a,&b,&c,&d);Sum = a + b + c + d;Average = (a + b + c + d)/4.0;printf(”Sum = %d,Average = %。

1f\n",Sum,Average);return 0;}②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内输入在一行中给出2个正整数A和B。

在4行中按照格式“A 运算符B = 结果”顺序输出和、差、积、商。

c语言第二章试题及答案

c语言第二章试题及答案

c语言第二章试题及答案一、选择题1. 在C语言中,以下哪个选项不是合法的变量名?A. _123B. intC. 2nameD. name123答案:C2. C语言中,用于定义整型变量的关键字是:A. intB. floatC. charD. double答案:A3. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. %D. ==答案:A4. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defineC. defD. void答案:D5. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[] = "Hello", str2[] = "World";C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A二、填空题1. 在C语言中,使用________关键字可以定义一个指针。

答案:int*2. 如果需要定义一个可以存储10个整数的数组,应该使用________关键字。

答案:int3. 在C语言中,使用________函数可以将字符串从标准输入读取到程序中。

答案:scanf4. 要将一个整数变量的值赋给另一个整数变量,可以使用________运算符。

答案:=5. 在C语言中,使用________函数可以输出字符串到标准输出。

答案:printf三、简答题1. 请简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的多个元素,而指针是一种变量,它存储的是另一个变量的内存地址。

数组名可以作为指针使用,但它本身并不是指针。

2. 解释C语言中函数声明和函数定义的区别。

答案:函数声明提供了函数的原型,包括函数名、返回类型和参数类型,但不包含函数体。

C程序设计语言 (第二版) 课后答案第二章

C程序设计语言 (第二版) 课后答案第二章

Exercise 2-1Write a program to determine the ranges of char , short , int , and long variables, both signed and unsigned , by printing appropriate values from standard headers and by direct computation. Harder if you compute them: determine the ranges of the various floating-point types.#include <stdio.h>#include <limits.h>intmain (){printf("Size of Char %d\n", CHAR_BIT);printf("Size of Char Max %d\n", CHAR_MAX);printf("Size of Char Min %d\n", CHAR_MIN);printf("Size of int min %d\n", INT_MIN);printf("Size of int max %d\n", INT_MAX);printf("Size of long min %ld\n", LONG_MIN);printf("Size of long max %ld\n", LONG_MAX);printf("Size of short min %d\n", SHRT_MIN);printf("Size of short max %d\n", SHRT_MAX);printf("Size of unsigned char %u\n", UCHAR_MAX);printf("Size of unsigned long %lu\n", ULONG_MAX);printf("Size of unsigned int %u\n", UINT_MAX);printf("Size of unsigned short %u\n", USHRT_MAX);return 0;}Exercise 2-2Write a loop equivalent to the for loop above without using && or || .#include <stdio.h>#define lim 100void main(){int i=0, c;char s[lim];while(i<lim-1){c=getchar();if(c='\n')break;if(c= EOF)break;++i;s[i]=c;}}Exercise 2-3Write the function htoi(s) , which converts a string of hexadecimal digits (including an optional 0x or 0X) into its equivalent integer value. The allowable digits are 0 through 9, a through f, and A through F .#define YES 1#define NO 0int htoi(s[]){int a ,I ,b ,n ;if(s[i]=='0'){++i;if(s[i]=='x'||s[i]=='X'){++i;}}n=0;b=YES;if( ;b==YES;++i){if(s[i]>='0'&&s[i]<='9')a=s[i]-'0';else if(s[i]>='a'&&s[i]<='z')a=s[i]-'a'+10;else if(s[i]>='A'&&s[i]<='Z')a=s[i]-'A'+10;elseb=NO;if (b==YES)n=16*n+a;}return n;}Exercise 2-4Write an alternate version of squeeze(s1,s2) that deletes each character in the string s1 that matches any character in the string s2 . void squeeze2(char s1[], char s2[]){int i, j, k;int instr2 = 0;for(i = j = 0; s1[i] != '\0'; i++){instr2 = 0;for(k = 0; s2[k] != '\0' && !instr2; k++){if(s2[k] == s1[i]){instr2 = 1;}}if(!instr2){s1[j++] = s1[i];}}s1[j] = '\0';}Exercise 2-5Write the function any(s1,s2) , which returns the first location in the string s1 where any character from the string s2 occurs, or -1 if s1 contains no characters from s2 . (The standard library function strpbrk does the same job but returns a pointer to the location.) int any(char s1[], char s2[]){int i;int j;int pos;pos = -1;for(i = 0; pos == -1 && s1[i] != '\0'; i++){for(j = 0; pos == -1 && s2[j] != '\0'; j++){if(s2[j] == s1[i]){pos = i;}}}return pos;Exercise 2-6Write a function setbits(x,p,n,y) that returns x with the n bits that begin at position p set to the rightmost n bits of y, leaving the other bits unchanged.#include <stdio.h>unsigned setbits(unsigned x, int p, int n, unsigned y){return (x & ((~0 << (p + 1)) | (~(~0 << (p + 1 - n))))) | ((y & ~(~0 << n)) << (p + 1 - n));}int main(void){unsigned i;unsigned j;unsigned k;int p;int n;for(i = 0; i < 30000; i += 511){for(j = 0; j < 1000; j += 37){for(p = 0; p < 16; p++){for(n = 1; n <= p + 1; n++){k = setbits(i, p, n, j);printf("setbits(%u, %d, %d, %u) = %u\n", i, p, n, j, k);}}}}return 0;}Exercise 2-7Write a function invert(x,p,n) that returns x with the n bits that begin at position p inverted (i.e., 1 changed into 0 and vice versa), leaving the others unchanged.#include <stdio.h>int main(void){unsigned x;int p, n;for(x = 0; x < 700; x += 49)for(n = 1; n < 8; n++)for(p = 1; p < 8; p++)printf("%u, %d, %d: %u\n", x, n, p, invert(x, n, p));return 0;}Exercise 2-8Write a function rightrot(x,n) that returns the value of the integer x rotated to the right by n bit positions.#include <stdio.h>int main(void){unsigned x;int n;for(x = 0; x < 700; x += 49)for(n = 1; n < 8; n++)printf("%u, %d: %u\n", x, n, rightrot(x, n));return 0;}Exercise 2-9In a two's complement number system, x &= (x-1) deletes the rightmost 1-bit in x . Explain why. Use this observation to write a faster version of bitcount .int bitcount(unsigned x){int b;for (b = 0; x != 0; x >>= 1)if (x & 01)b++;return b;}Exercise 2-10Rewrite the function lower, which converts upper case letters to lower case, with a conditional expression instead of if-else .#include <stdio.h>#include <string.h>#define TEST#define ORIGINAL 0#define SOLUTION 1#define PORTABLE_SOLUTION 0#if ORIGINALint lower(int c){if(c >= 'A' && c <= 'Z')return c + 'a' - 'A'; elsereturn c;}#endif。

c语言程序设计第2版习题答案

c语言程序设计第2版习题答案

c语言程序设计第2版习题答案C语言程序设计是计算机科学领域中一门重要的编程语言,它被广泛应用于软件开发和系统设计中。

为了帮助学习者更好地理解和掌握C语言的基本概念和编程技巧,本文将为读者提供《C语言程序设计第2版》习题答案。

第一章:基本概念和语法本章主要介绍了C语言的基本概念和语法规则。

以下是一些习题的答案:1. 编写一个程序,输出"Hello, World!"。

```c#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}```2. 编写一个程序,输入两个整数并计算它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```第二章:控制结构本章主要介绍了C语言中的控制结构,包括条件语句和循环语句。

以下是一些习题的答案:1. 编写一个程序,判断一个整数是否为正数、负数或零。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num > 0) {printf("正数\n");} else if (num < 0) {printf("负数\n");} else {printf("零\n");}return 0;}```2. 编写一个程序,计算1到100之间所有偶数的和。

C语言第二章习题带答案

C语言第二章习题带答案

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 )。

A.'\'','\\','\n' B.'\','\017','\'C.'\018','\f','xab' D.'\\0,'101','x1f6.在C语言中,数字029是一个( D )。

A.八进制数B.十六进制数 C.十进制数D.非法数7.下列可以正确表示字符型常数的是( B )。

A."a" B.'\t' C."\n" D.2978.以下( C )是错误的转义字符。

A.'\\' B.'\'' C.'\81' D.'\0'9.C语言中整数-8在内存中的存储形式是( A )。

A.1111 1111 1111 1000 B.100000000000 1000C.000000000000 1000 D.1111 1111 1111 011110.将字符g赋给字符变量c,正确的表达式是( C )。

A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。

C语言程序设计》课后习题详细答案

C语言程序设计》课后习题详细答案
3.18【参考答案】D)把D的答案修改为:scanf(“%8f”,&c);
3.19【参考答案】C)
3.20【参考答案】B)
二、填空题
3.21【参考答案】
(1)-200,2500(2)i=-200,j=2500
(3) i=-200
j=2500
3.22【参考答案】[1]12[2]0[3]0
3.23【参考答案】[1]一条语句[2]分号(或;)
2.2【参考答案】D)
2.3【参考答案】B)
2.4【参考答案】A)
2.5【参考答案】C)
2.6【参考答案】A)
2.7【参考答案】B)
2.8【参考答案】B)
2.9【参考答案】D)
2.10【参考答案】C)
2.11【参考答案】B)
2.12【参考答案】B)
2.13【参考答案】A)
二、填空题
2.14【参考答案】[1]11[2]12
(5)交换的步骤如下:
①把c中的值赋给t。
②把b中的值赋给c。
③把a中的值赋给b。
④把t中的值赋给a。
经过以上步骤,已按要求进行了交换。
(6)输出a、b、c中的值。
(7)编写程序如下:
main()
{ int a, b, c, t;
printf(″Enter a, b, c :\n″);
scanf(″%d%d%d″,&a,&b,&c);
4.5【参考答案】C)
4.6【参考答案】A)
4.7【参考答案】B)
4.8【参考答案】C)
4.9【参考答案】D)4.Biblioteka 0【参考答案】A)二、填空题
4.11【参考答案】[1]非零[2]零
4.12【参考答案】<、>、<=、>=、==、![KG-*2]=

《C语言程序设计(第2版)》课后习题参考答案prt

《C语言程序设计(第2版)》课后习题参考答案prt

《C语言程序设计》(邱晓红主编)课后习题参考答案第1章C语言及程序设计概述1.单选题(1)A (2)B (3)A (4)B (5)C2.填空题(1)//,/*…*/(2)scanf()(3)printf()3.判断题(1)对(2)错(3)错(4)对1.4简答题①概述C语言和C语言程序的主要特点。

答:1.C语言是高级语言。

它把高级语言的基本结构和语句与低级语言的实用性结合起来。

2。

C语言是结构式语言。

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

这种结构化方式可使程序层次清晰,便于使用、维护以及调试。

①C语言功能齐全。

具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。

②C语言适用范围大。

适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。

②请编程,在计算机屏幕上显示:“您好,欢迎进入C语言世界!”解:#include<stdio.h>void main(){printf("您好,欢迎进入c预言世界!");}第二章:数据类型运算符与表达式1.单选题(1)C (2)D (3)C (4)B (5)C (6)A (7)B (8)D (9)A (10)B(11)C (12)C (13)D (14)A (15)B (16)C (17)A (18)A (19)B (20)C (21)C (22)D (23)C (24)A (25)D (26)B (27)C (28)B (29)B (30)A 2.填空题(1)sqrt(pow(y,x)+log10(y)) (2)36(3)6 (4)3 3(5)6 (6)36(7)int x=8,y=8; (8)1(9)E (10)7,9,6,8)(11)6 (12)66,96(13)240 (14)1,1,-1,-1(15)5,2,6 (16)1(17)!(18)2(19)(a>0&&a<101)&&(a%3==0||a%7==0)(20)A3.程序分析题(1)2 7 (VC++环境下,其它编译环境可能有不一样的结果)2 74 94 412 12(2)3 1 4 01 -616(3)100 d 68 D97 a 49 1(4)0 1 0 1(5)2 4 6 7-0.5800000 7.00000046.5800007.500000(6)33 12 113 13 082 32(7)618 30181(8)1 1 0 04.改错题(1)①无初始赋值,不能输出②数据精度丢失③少“;”号④单字符变量不能保存字符串常量⑤不能连续初始化⑥非法标识符(2)short i=38000溢出PI=3.1416 常量不能修改值Printf(“%d”,x%y) %必须是整数a*=(b+c)/=d复合赋值左边不能是表达式5、(1)#include <stdio.h>int main(){int H;float v,L1,L2,L,T,s1,M;printf("请输入开始里程数,单位为千米:\n");scanf("%f",&L1);printf("请输入结束里程数,单位为千米:\n");scanf("%f",&L2);printf("请输入时间,格式为时,分,秒\n");scanf("%d,%f,%f",&H,&M,&s1);T=H+M/60.0+s1/3600.0;//将时间折算成小时;L=L2-L1;//计算出这段时间走的路程,以千米计;v=L/T;printf("%f\n",v);return 0;}(2)#include <stdio.h>#define PI 3.14int main(){double r=2.5,h=5,V;V=(PI*r*r*h)/3;printf("%f\n",V);return 0;}第三章:算法概念与顺序结构程序设计1.选择题(1)D (2)D (3)D (4)B (5)C (6)A (在16位机答案为D)(7)B (8)C (9)B (10)D2.填空题.(1)一条语句;(2)小于左右(3)%%(4)输出项列表输出控制符(5)取地址取a的地址(6)从盘获取一个字符(7)大括号(8)f=68.000000(9)n1=%d\n n2=%d(10)7,5,c=33.程序分析题.(1)i=100,c=a,f=1.234000(2)i=65535,j=65536(10)1234,123.5,12345.53.4 编程题①编写一个程序,交换两个数的值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C语言程序设计》第2章作业布置日期:2017-10-23 截止日期:2017-11-3一、单选题(每小题4分,共100分)1、以下说法中正确的是____。

A、C语言程序总是从第一个函数开始执行B、在C语言程序中,要调用的函数必须在main()函数中定义C、C语言程序总是从main()函数开始执行D、C语言程序中的main()函数必须放在程序的开始部分2、若一个void型函数定义中没有return语句,则调用该函数时,函数______。

A、没有返回值B、返回若干个系统默认值C、返回一个用户所希望的函数值D、返回一个不确定的值3、一个C程序的执行是________。

A、从本程序的main函数开始,到本程序的main函数结束B、从本程序的main函数开始,到本程序的最后一个函数结束C、从本程序的第一个函数开始,到本程序的最后一个函数结束D、从本程序的第一个函数开始,到本程序的main函数结束4、若已定义x和y为double类型,且x=1,则表达式y=x+3/2的值是______。

A、1B、2C、2.0D、2.55、设a为整型变量,能表达数学关系10<a<15的C语言表达式是______。

A、10<a<15B、a>10&&a<15C、a>10 and a<15D、a>10||a<15</a<156、若k是int型变量,且有下面的程序片段:k=-3;if(k=3) printf("####");else printf("&&&&");上面程序片段的输出结果是A、####B、&&&&C、####&&&&D、上面程序段语法错误,无输出结果7、下面程序的输出是:main(){int x=10,y=3;double z;z=x/y;printf("%6.2f\n",z);}A、0B、3.00C、3.33D、18、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:A、a<>0B、a!=0C、a>0 OR a<0D、a>0 AND a<09、设j为int 型变量,则下面for循环语句的执行结果是:for(j=10;j>3;j=j-1){ if(j%3!=0)j=j-1;j=j-2;printf("%d",j);}A、6 3B、7 4C、6 2D、7 310、若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的正确形式是:int b,c; float a;scanf("%f,%d,%d",&a,&b,&c);A、5.0 4 3B、5.0, 4, 3C、5.0, 4, c=3D、a=5.0, b=4, c=311、若执行以下语句后,celsius变量的结果是______。

int celsius,fahr=100;celsius=6/12*(fahr-30);A、0B、35C、35.0D、3612、若有以下的语句:scanf("%d%d%lf", &money, &year, &rate);程序运行时,输入的多个数据之间必须有间隔,间隔符不可以是______。

A、空格B、回车符C、Tab键D、逗号13、下列有关for语句的描述中:for(表达式1;表达式2;表达式3)循环体语句______是不正确的。

A、书写顺序和执行顺序不同B、表达式1只执行一次C、表达式2,循环体语句,表达式3循环执行D、表达式1,表达式2,循环体语句,表达式3循环执行14、下列for语句中,______是循环变量。

for (fahr = lower; fahr <= upper; fahr ++){celsius = (5.0 / 9.0) * (fahr - 32.0);printf("%d %6.1f\n", fahr, celsius);}A、fahrB、lowerC、upperD、celsius15、执行下列程序段后,变量sum、i的值是______。

for(sum=0,i=1; i<=100; i++)sum=sum+i;A、5050 101B、5050 100C、5051 100D、5051 10116、下列程序的功能是:flag=1;denominator=1;sum=0;for(i=1;i<=n;i++){ item = flag * 1.0/(2*i-1)sum = sum + item ;flag = -flag;}A、求1+2+3+...+n之和B、求1-2+3-...+n之和C、求1+1/2+1/3+...+1/n之和D、求1-1/3+1/5-...+1/n之和17、C语言程序中的常量类型( )。

A、由书写形式确定B、必须用定义语句定义C、在运算时才能确定D、无法确定18、假设m是一个两位数,将m的个位与十位互换的表达式是( )。

A、m/10*10+m%10B、m%10*10+m/10C、m*10%10+m/10D、m/10+m%10/1019、若输入2.50,下列程序的执行结果是( )。

void main( ){float r, area ;scanf("%f", &r);printf("%f\n", area=1/2*r*r);}A、0B、3.125C、3.13D、程序有错20、下列条件语句中,功能与其他语句不同的是( )。

A、if(a) printf("%d\n",x); else printf("%d\n",y);B、if(a==0) printf("%d\n,y"); else printf("%d\n",x);C、if(a!=0) printf("%d\n",x); else printf("%d\n",y);D、if(a==0) printf("%d\n",x); else printf("%d\n",y);21、下列程序运行时如果从键盘输入“78 9”,则运行结果是( )。

#includevoid main(){int a,b,c,x,y;printf(“请输入3个整数:”);scanf("%d%d%d",&a,&b,&c);if(a>b){x=a;y=b;}else{x=b;y=a;}if(x<c) x=c;if(y>c) y=c;printf("x=%d,y=%d",x,y);}A、x=7,y=9B、x=7,y=7C、x=9,y=7D、x=9,y=922、运行下列程序后的输出结果是( )。

#include <stdio.h>int main(void){int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}A、31B、30C、32D、2923、下列程序的功能是计算s=1+12+123+1234+12345,完善程序。

#include <stdio.h>void main(){int t,s,i;(1) ;for(i=1;i<=5;i++){(2) ;s=s+t;}printf("s=%d\n",s);}A、(1) s=0,t=1 (2) t=t+10*iB、(1) s=0,t=1 (2) t=t*10+iC、(1) s=0,t=0 (2) t=t*10+iD、(1) s=1,t=1 (2) t=t+10*i24、以下程序的功能是计算s=1+1/2+1/3+...+1/10,完善下列程序。

#includevoid main(){int n;float s;(1) ;for(n=10;n>=1;n--)(2) ;printf("%6.4f\n",s);}A、(1) s=0 (2) s=s+1/nB、(1) s=0.0 (2) s=s+1/nC、(1) s=1.0 (2) s=s+1.0/nD、(1) s=0 (2) s=s+1.0/n25、下面程序的功能是在输入的10个正整数中求出最大者,请选择填空。

#include<stdio.h>void main(){int i,a,max=0;for(i=1;i<=10;i++){(1);if(max<a) (2);}printf("%d",max);}A、(1) scanf("%d",&a) (2) mxa=aB、(1) scanf("%l d",&a) (2) mxa=aC、(1) scanf("%d",&a) (2) a=mxaD、(1) sca nf("%ld",&a) (2) a=mxa。

相关文档
最新文档