程序设计基础教材1-5章答案

合集下载

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析1. 习题一:编写一个C程序,输出“Hello World!”。

解析:这是一个非常简单的C程序,只需要使用printf函数输出所需的字符串即可。

```c#include <stdio.h>int main() {printf("Hello World!");return 0;}```2. 习题二:编写一个C程序,计算两个整数的和并输出结果。

解析:这个程序需要使用scanf函数从用户输入中读取两个整数,并使用printf函数输出它们的和。

```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入第一个整数:");scanf("%d", &num1);printf("请输入第二个整数:");scanf("%d", &num2);sum = num1 + num2;printf("两个整数的和为:%d", sum);return 0;}```3. 习题三:编写一个C程序,判断一个数是奇数还是偶数并输出结果。

解析:这个程序需要使用scanf函数读取用户输入的整数,并使用if-else语句判断该数的奇偶性,然后使用printf函数输出结果。

```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (num % 2 == 0) {printf("该数是偶数");} else {printf("该数是奇数");}return 0;}```4. 习题四:编写一个C程序,判断一个年份是否为闰年并输出结果。

C语言程序设计教程1-5章 课后答案

C语言程序设计教程1-5章 课后答案

第1章C语言概述一、简答题1.(1)语言简洁、紧凑,使用方便、灵活;(2)运算符丰富;(3)具有丰富的数据类型;(4)具有结构化的控制语句;(5)语法限制不太严格,程序设计自由度大;(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接访问硬件;(7)生成目标代码质量高,程序执行效率高;(8)用C语言写的程序可移植性好,基本上不作修改就能用于各种型号的计算机和各种操作系统。

2.顺序结构,分支结构,循环结构3.所谓算法就是为解决一个问题而采取的方法和步骤。

算法的特性:有穷性、确定性、输入、输出、可行性。

表示算法的方式:(1)用自然语言表示;(2)用流程图表示;(3)用N—S流程图表示;(4)用伪代码表示;(5)用计算机语言表示。

二、算法1.瓶子A里盛有醋瓶子B里盛有酱油有一个空瓶C将A中的醋倒入C将B中的酱油倒入A将C中的醋倒入B2.输入一个数放在a中max = a以下步骤重复9次:输入一个数放在a中如果a>max,max=a打印max的值3.如果a<btemp=aa=bb=temp如果c>atemp = aa=cc=temp否则如果c>btemp=bb=cc=temp打印a,b,c的值4.i=1sum=0以下程序循环100遍:sum=sum+ii=i+1打印sum 的值5.如果(n 除以3的余数为0 并且 n 除以5的余数为0)n 能够同时被3和5整除否则 n 不能够同时被3和5整除 6.i=101以下语句循环50遍: j=2 flag=1 当j<(i 除以2的整数部分)时循环以下语句: 如果i 除以j 的余数为零 flag=0 退出该循环 如果flag==1 打印i 的值 i=i+2 7.如果m<n temp=m m=n n=temp i=n做以下循环,直到m,n 能够被i 整除:如果m 能够被i 整除并且n 能够被i 整除 i 即是m 和n 的最大公约数 跳出循环 否则 i=i-1 打印i 的值8.data=b*b —4*a*c 如果data >0否则 如果data=0 x1=x2=—b/2 否则 无实数解 三、编程题 1.main () { printf (“##############################\n ”); printf (“ How do you do ? \n”); printf(“##############################\n”); }a datab x 2)(1+-=adata b x 2)(2--=2.main(){int a,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“sum=%d”,a+b+c);}第二章数据类型与表达式一、单项选择题1. B2. C3. A4. A5. D6. B7.A8.C9.D二、写出下列程序的运行结果1.aabb cc abcAN2.ab97983. 9,11,9,104.a=2,b=3,c=25.s1=2.500000s2=3三、编程题main(){char c1='c',c2='h',c3='i',c4='n',c5='a';c1=c1+4;c2=c2+4;c3=c3+4;c4=c4+4;c5=c5+4;printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);}第三章顺序程序设计选择题1)B 2)D 3)D 4)A 5)A 6)B 7)B 8)A 9)D 10)C 11)D 12)A填空题1)b 2)261 3)25 21 37 4)abc 5)5.0,4,c=3 6)3编程题#define PI 3.1415926main( ){float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:\n”) ;scanf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2f\n”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2f\n”, sv, sz) ;}2、main( ){float c, f ;printf(“请输入一个华氏温度:\n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2f\n”, c) ;}第四章循环程序设计一、选择题1.D2.D3.D4.C5.D6.A7.B8.B9.A 10.D.11.B 12.A 13.B 14.C 15.C 16.A 17.A 18.B 19.D 20.D21.A二、填空题1.5858582.03.184.89215.20,06.67.1,3,28.Year%400==0year%100!=0count++三、编程题1.main(){long a;scanf(“%ld”,&a);if (a>=10000&&a<=99999) printf(“这是个五位数”);else if (a>=1000&&a<=9999) printf(“这是个四位数”);else if (a>=100&&a<=999) printf(“这是个三位数”);else if (a>=10&&a<=99) printf(“这是个二位数”);else if (a>=0&&a<=9)printf(“这是个一位数”);elseprintf(“输入错误”);}3.main(){int a;int g,s,b;//个位、十位、百位printf("水仙花数有:\n");for(a=100;i<=999;a++){g=a%10;s=a/10%10;b=a/100;if (a==g*g*g+s*s*s+b*b*b) printf("%d ",a);}printf("\n");}4、main(){int i,n;printf("input n:");scanf("%d",&n);printf("\n%d=",n);for(i=2;i<=n;i++){while(i!=n)if(n%i==0){printf("%d*",i);n/=i;}else break;}printf("%d\n",n);}5、#include “stdio.h”main(){char c;int w,x,y,z;w=x=y=z=0;while((c=getchar())!=’\n’){if((c>’a’&&c<’z’)||(c>’A’&&c<’Z’))w++;else if (c==’’)x++;else if (c>’0’&&c<’9’)y++;else z++;}printf(“英文字母个数:%d\n”,w);printf(“空格个数:%d\n”,x);printf(“数字个数:%d\n”,y);printf(“其他字母个数:%d\n”,z);}6、main(){float h=100,t=100;int j;for(j=1;j<10;j++){t=t/2;h=h+t*2;}printf(“共经过:%f 米\n”,h);printf(“第十次反弹%f 米\n”,t/2);}第五章数组一、单项选择题1. B2. A3. C4. C5. D6. B7.C8.B9.C 10. B二、写出下列程序的运行结果1.S=3682.*************************3.S1=18S2=104.!margorP5.数字0的出现次数是:3数字1的出现次数是:2数字2的出现次数是:2数字3的出现次数是:2数字4的出现次数是:0数字5的出现次数是:1数字6的出现次数是:1数字7的出现次数是:1数字8的出现次数是:1数字9的出现次数是:1三、编程题1.#include "stdio.h"main(){int a[11];int i,j,t;printf("input 10 number:\n");for (i=1;i<11;i++)scanf("%d",&a[i]);printf("\n");for (i=1;i<=9;i++)for (j=1;j<=10-i;j++)if (a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("the sorted number is:\n");for (i=1;i<11;i++)printf("%4d",a[i]);}2.#include "stdio.h"main(){int a[11],i,b;printf("imput 10 sorted number:\n");for (i=0;i<10;i++)scanf("%d",&a[i]);printf("input an integer:\n");scanf("%d",&b);for (i=9;i>=0&&a[i]>b;i--)a[i+1]=a[i];a[i+1]=b;printf("sorted numbers:\n");for (i=0;i<11;i++)printf("%5d",a[i]);}3.#include "stdio.h"main(){int a[5],i,j,t;printf("input 5 integer:\n");for (i=0;i<5;i++) /*输入5个整数*/scanf("%d",&a[i]);for (i=0,j=4;i<j;i++,j--) /*逆序存放*/{t=a[i];a[i]=a[j];a[j]=t;}for (i=0;i<5;i++) /*逆序存放后重新输出*/printf("%5d",a[i]);}4.#include "stdio.h"main(){int i,j,a[10][10]={{1},{1,1}};for (i=2;i<10;i++) /*给二维数组每个元素赋值*/ {a[i][0]=1;for (j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];}for (i=0;i<10;i++) /*输出二维数组*/{for (j=0;j<=i;j++)printf("%-5d",a[i][j]);printf("\n");}}5.#include "stdio.h"{int a[3][4],i,j,max,row,col;printf("input 3*4 matrix:\n");for (i=0;i<3;i++) /*输入3*4矩阵*/for (j=0;j<4;j++)scanf("%d",&a[i][j]);max=a[0][0]; row=0; col=0;for (i=0;i<3;i++) /*寻找矩阵中的最大值及其行列号*/ for (j=0;j<4;j++)if (max<a[i][j]){max=a[i][j]; row=i, col=j;}printf("\n数组中最大的数是%d,其行号是%d,列号是%d\n",max,row,col);}6.#define N 3#define M 4#include "stdio.h"main(){int a[N][M],i,j,k,max,row,col;printf("input %d*%d matrix: \n",N,M);for (i=0;i<N;i++) /*输入二维矩阵*/for (j=0;j<M;j++)scanf("%d",&a[i][j]);for (i=0;i<N;i++) /*求鞍点*/{max=a[i][0]; row=i; col=0;for(j=1;j<M;j++) /*求矩阵中每一行的最大值及其所行列号*/ if (max<a[i][j]){max=a[i][j]; col=j;}for (k=0;k<N;k++) /*判断每一行的最大值在其所在列是否最大*/ if (a[k][col]<max)break;if (k==N) /*得到鞍点*/{printf("the point is %d,row=%d,col=%d\n",max,row,col);break;}}if (i==N) /*没有鞍点*/printf("no point\n");}7.#include "stdio.h"main(){int num=0,word=0;/*word=0表示未出现单词,如出现单词就置word为1.num用来统计单词个数*/printf("please input a string :\n");while ((c=getchar())!='\n')if (c==' ')word=0;else if (word==0){word=1; num++;}printf("There are %d words in the line\n",num);}8.#include "stdio.h"main(){int i,j,uppn,lown,dign,span,othn;/*uppn,lown,dign,span,othn分别存放英文大写字母、小写字母、数字、空格和其他字符的个数*/char text[3][80];uppn=lown=dign=span=othn=0;for(i=0;i<3;i++){gets(text[i]);for(j=0;j<80&&text[i][j]!='\0';j++){if(text[i][j]>='A'&&text[i][j]<='Z')uppn++;else if(text[i][j]>='a'&&text[i][j]<='z')lown++;else if(text[i][j]>='0'&&text[i][j]<='9')dign++;else if(text[i][j]==' ')span++;elseothn++;}}for(i=0;i<3;i++)printf("%s\n",text[i]);printf("uppn=%d\n",uppn);printf("lown=%d\n",lown);printf("dign=%d\n",dign);printf("span=%d\n",span);printf("othn=%d\n",othn);}9.#include "stdio.h"main(){int i,j;char str1[20],str2[20];printf("input two strings:\n");gets(str1);gets(str2);j=strlen(str1); /*求字符串1的长度*/for (i=0;str2[i]!='\0';i++,j++) /*字符串合并*/str1[j]=str2[i];str1[j]='\0'; /*加上字符串结束标志*/puts(str1);}10.#include "stdio.h"main(){int i,n;char str1[20],str2[20];printf("input two strings:(no more than 20 characters)\n");gets(str1); gets(str2);n=strlen(str1)<strlen(str2)?strlen(str1):strlen(str2); /*n中存放较短字符串的长度*/ for (i=0;i<n&&str1[i]==str2[i];i++);printf("%d\n",str1[i]-str2[i]);}11。

《Python程序设计基础》习题答案与分析

《Python程序设计基础》习题答案与分析

Python程序设计基础习题答案与分析程昱第1章基础知识1.1 简单说明如何选择正确的Python版本。

答:在选择Python的时候,一定要先考虑清楚自己学习Python的目的是什么,打算做哪方面的开发,有哪些扩展库可用,这些扩展库最高支持哪个版本的Python,是Python 2.x还是Python 3.x,最高支持到Python 2.7.6还是Python 2.7.9。

这些问题都确定以后,再做出自己的选择,这样才能事半功倍,而不至于把大量时间浪费在Python的反复安装和卸载上。

同时还应该注意,当更新的Python版本推出之后,不要急于更新,而是应该等确定自己所必须使用的扩展库也推出了较新版本之后再进行更新。

尽管如此,Python 3毕竟是大势所趋,如果您暂时还没想到要做什么行业领域的应用开发,或者仅仅是为了尝试一种新的、好玩的语言,那么请毫不犹豫地选择Python 3.x系列的最高版本(目前是Python 3.4.3)。

1.2 为什么说Python采用的是基于值的内存管理模式?Python采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址,例如下面的代码。

>>> x = 3>>> id(x)10417624>>> y = 3>>> id(y)10417624>>> y = 5>>> id(y)10417600>>> id(x)10417624>>> x = [1, 2, 3, 1, 1, 2]>>> id(x[0])==id(x[3])==id(x[4])True1.3 解释Python中的运算符“/”和“//”的区别。

答:在Python 2.x中,“/”为普通除法,当两个数值对象进行除法运算时,最终结果的精度与操作数中精度最高的一致;在Python 3.x中,“/”为真除法,与除法的数学含义一致。

谭浩强C语言程序设计基础课后题答案.doc

谭浩强C语言程序设计基础课后题答案.doc

课后题答案第一章程序设计基本概念习题分析与解答1.1 【参考答案】.EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)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]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=10, a2=10;或float a1=1, a2=1;(系统将自动把1转换为10)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]0或12.25 【参考答案】[1]8 [2]127 [3]-128 [4]111111112.26 【参考答案】[1]32767 [2]-32768 [3]11111111111111112.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。

(2) include程序行中后面的stdio.h是一个文件名,按规定,文件名应当放在一对双引号(″″)内,或放在一对尖括号(< >)内。

程序设计基础课后答案 习题答案

程序设计基础课后答案  习题答案
cout<<"二元一次方程的解为x2="<<x2<<endl;
}
}
5、编写输出如图所示的图案
*
**
********
********
********
**
*
#include<iostream>
using namespace std;
#define M 7
#define N 9
int main()
{
int a[M][N]={
cin>>a;
cout<<"Please enter b=";
cin>>b;
cout<<"Please enter c=";
cin>>c;
if(a==0)
{
double x0;
x0=(-c)/b*1.0;有问题??
cout<<"此时为一元一次方程有唯一解"<<x0<<endl;
return;
}
double temp=b*b-4.0*a*c;
算法与程序设计中的递归技术是指将问题分为不同层次的子问题解决每一层问题的难度随层次的降低而减小这些不同层次的问题有极大的相似性可以解决在某层次问题的算法中调用同一算法解决低层次问题这种嵌套的算法调用运行知道最低层次问题的解决
第一章:
一、简答
1、说明计算机系统字符集与计算机语言字符集之间的关系。
答:能够出现在高级语言程序文本中的所有字符(注释除外)构成了计算机高级语言字符集。它们是计算机系统字符集的子集。
cin>>a;

程序设计基础课后答案 第五章

程序设计基础课后答案 第五章
{
int i,m,n;
m=strlen(dest);
n=strlen(a)-m;
try//用于抛出错误
{
for(i=0;i<=n;i++)
{
int k=i;/r(int j=0;j<=m-1;j++)
{
if(a[k]==dest[j])
cout<<"values after function"<<big<<"and"<<small<<endl;
}
分析:输出结果:Values before function 2002 and 0
Values after function 2002 and 0
在函数调用中,可以通过值传递方式在函数间传递数据。但是,这种传递无法改变实参的值。只是因为在进入被调用函数时,变量进行了复制。被调用函数的任何更改和实参没有任何联系。所以,在主程序中打印它的局部变量时,变量值没有任何改变。
double add(double,double);
void main()
{
cout<<add(5,10)<<endl;
cout<<add(5.0,10.6)<<endl;
}
int add(int x,int y)
{
return x+y;
}
double add(double a, double b)
四、编程题
2、编写一个函数,在一个字符串数组中查找"Hello",如果找回返回指向“Hello”开始出的指针;否则抛出一个异常“Not Found”.

c语言程序设计基础教程课后答案

c语言程序设计基础教程课后答案

c语言程序设计基础教程课后答案C语言程序设计基础教程课后答案第一章:C语言概述1. 简述C语言的特点。

- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。

- 它支持多种编程范式,如过程式编程、结构化编程、面向对象编程等。

- C语言具有较低的抽象级别,接近硬件,因此执行效率较高。

2. C语言的发展历史。

- C语言在1972年由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发。

- 它最初是作为UNIX操作系统的系统编程语言而设计的。

第二章:C语言环境和基本语法1. 如何设置C语言的开发环境?- 选择一个C语言编译器,如GCC、MSVC等。

- 安装编译器并配置环境变量,以便在命令行中直接调用编译器。

2. C语言的基本语法结构是什么?- C语言的基本结构包括预处理指令、函数定义、变量声明和语句。

第三章:数据类型、运算符和表达式1. C语言中的基本数据类型有哪些?- 整型(int)、字符型(char)、浮点型(float和double)等。

2. 运算符的分类及其用法。

- 算术运算符:+、-、*、/、%等。

- 赋值运算符:=、+=、-=等。

- 比较运算符:==、!=、>、<等。

- 逻辑运算符:&&、||、!等。

第四章:控制语句1. 条件语句的用法。

- if语句用于基于条件执行代码块。

- switch语句用于多条件选择。

2. 循环语句的用法。

- while循环用于在满足条件时重复执行代码块。

- for循环用于已知迭代次数的循环。

- do-while循环先执行代码块再判断条件。

第五章:数组和字符串1. 数组的基本概念和使用。

- 数组是相同数据类型的元素集合,存储在连续的内存位置。

- 声明数组:int arr[10]; 表示一个包含10个整数的数组。

2. 字符串的表示和操作。

- 在C语言中,字符串是以空字符('\0')结尾的字符数组。

- 使用标准库函数如strcpy、strlen等操作字符串。

《C#程序设计基础入门教程》课后习题答案

《C#程序设计基础入门教程》课后习题答案

《C#程序设计基础入门教程》习题答案第1章C#开发入门一、填空题1、.dll、.exe2、CLR3、编译、运行4、互操作性5、Console.WriteLine()二、选择题1、C2、B3、C4、A5、D三、问答题1、它是一个全新的、集成的、面向对象的开发平台,它以公共语言运行时(Common Language Runtime,简写CLR)为基础,支持多种编程语言。

2、.NET平台是一个环境,而C#只是一门语言,并不是它的一部分。

C#语言编写的程序可以在.NET平台上运行。

四、编程题1、参考答案class Program{staticvoid Main(string[] args){Console.WriteLine("这是我的第一个C#程序!");Console.ReadKey();}}第2章C#编程基础(上)一、填空题1、class2、true和false3、54、值数据类型、引用数据类型5、1、46、& && | ||7、08、单行注释、多行注释、文档注释9、break10、1000二、判断题1、错2、错3、错4、对5、错三、选择题1、AD2、BCD3、C4、C5、C 6 、A7、AC8、AC9、BD10、A四、程序分析题1、编译不通过。

int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过。

2、编译不通过。

这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y变量的作用域,所以编译无法通过。

3、编译不通过。

因为switch语句中的每个分支语句之间需要使用break关键字隔开,如果没有break语句就会报错。

4、打印结果为:987五、问答题1、标识符可以由任意顺序的大小写字母、数字、下划线(_)和@符号组成,但标识符不能以数字开头,且不能是C#中的关键字。

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

《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个main函数。

c) 在C语言中,输出操作是有库函数printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个 C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S△= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A16、B 17 D解析:1. 答案:C。

这里考察的是用户标识符的定义。

用户标识符由字母、数字、下划线组成。

且必须以字母或下划线开头,区分大小写,且不能与C语言已有的32个关键字同名。

由于选择不合法的用户标识符,A项的 A 、P_0、Do都是合法的用户标识符;B项的_A是合法的;D项的_123、temp、INT 也都是合法的。

只有C 选项的标识符都是错误的用户标识符。

2.答案:A。

这里考察的是整型常量的概念。

B项当中01a不正确,C项当中的0668不是正确的八进制常量,D项当中的2e5是float型常量。

3.答案:C。

这里考察的是字符常量的定义。

字符常量是用单撇号括起来的单个字符或转义字符。

所以答案是C。

4.答案:A。

字符变量只能包含一个字符。

5.答案:C。

这里考察的是转义字符的正确表示。

C项的‟074‟是错误的转义字符,正确表示方法是‟\074‟。

6.答案:C。

字符变量只能包含一个字符,而C项的c=‟yes‟是错误的。

7.答案:D。

这里考察的是输入格式的控制。

输入格式要与scanf语句中字符串格式相对应。

8.答案:C。

这里考察的是输出格式和字符对应的ASCII 码值。

‟A‟的ASCII码值是65,‟Y‟字符的ASCII码值是89。

9.答案:D。

这里考察输入格式和输出结果形式。

由于输入格式不正确,所以输出的是不确定值。

10.答案:A。

这里考察的是标识符的特点区分大小写,变量sum和变量sUM是两个不同的变量,sum并没有参加运算,所以它的值不边仍然是7。

11.答案:D。

%运算符要求两边的运算数必须是整型。

12.答案:A。

这里考察的是复合赋值运算。

a%=b+1;等价与a=a%(b+1);由于a=10,b=4;所以运算后a的值是0。

13.答案:C。

这里考察的是在变量定义类型是进行赋值操作。

要求a,b,c都赋值为5,且为int 类型。

只有C正确。

14.答案:C。

这里考察的是类型的自动转换,只要有单精度类型或双精度类型参加运算,结果都是double(双精度)类型。

15.答案:B, A。

这里考察的是逻辑表达式的运算过程。

表达式1&表达式2 ,若表达式1的值是0的话,结果就是0,表达式2就不参加运算。

要注意:赋值表达式的值是左边赋值变量的值。

所以答案为B ,A。

16.答案:B。

这里考察的是逗号表达式运算过程是从第1个表达式开始运算,然后依次运行到最后一个表达式。

逗号表达式的值是最后表达式的值,且注意逗号运算符优先级低于赋值运算符。

所以表达式(a=2,b=5,b++,a+b)运算过程a=2 —> b=5 —> b++ —> a+b=8;结果是8。

17.答案:D。

这里考察的是条件表达式的结合性是从右向左。

所以k<a?k:c<b?c:a;等价于k<a ? k:(c<b?c:a);先运算c<b?c:a ;的值是1,然后计算k<a ? k:1;的值是1。

二、填空题1、-32768-327672、字母,数字,下划线3、分号(;)4、30 ,155、186、07、-264 8、7 9、010、1 11、y%2= = 1 12、x<z | | y<z13、0 14、(x>2&&x<3) | | x < -10 15、1三、编程题1、编写程序,输入一个长方形的二边长,输出其面积。

解:程序如下#include “stdio.h”main( ){int a , b , s ; /* a , b 作为长方形的两个边长,s为面积。

*/printf(“请输入两个边长\n”) ;scanf(“%d%d” , & a , & b) ;s = a * b ;printf(“ The area : %d \n “ , s ) ;}2、设置半径为r = 2.9 ,编程求圆周长和圆面积解:程序如下#include “stdio.h”#define PI 3.14main( ){float r , L , S ;L = 2*PI*r ;S = PI * r *r ;printf( “ L = %f , S = %f \n “ , L , S ) ;}3、输入一个华氏温度,输出相应的摄氏温度。

二者的换算公式是:c = 5/9(F – 32) , 其中F表示华氏温度,c表示摄氏温度。

解:程序如下#include “stdio.h”main( ){float c , F ;printf(“请输入一个华氏温度:\n”) ;scanf(“%f” , &F);c = (float) 5/9 *(F-32) ;printf(“ F=%f , c=%f \n” , F , c) ;}第3章程序设计初步一、单选题1、C2、C3、B4、 B5、B解析:1. 答案:C。

这里考察的是if-else 语句和表达式中有增量和减量的执行过程。

if(m++>5) printf(“%d\n”, m) ; else printf(“%d\n”,m++) ;先执行m>5 的值是0,然后执行m=m+1; 得到m=6;由于m>5 的值是0所以执行else语句,应先输出m的值是6,然后m再自增一个单位变成7。

2.答案:C。

这里考察的是if语句的嵌套。

根据else子句总是与之前最近的if语句配对来进行选择满足条件的答案。

3.答案:B。

这里也考察的是if语句的嵌套。

同理:if(x<y) if(y<0) z=0 ; else z+=1 ; 等价与if(x<y) { if(y<0) z=0 ; else z+=1 ; } 因此答案是B。

4.答案:B。

这里考察的是if语句的嵌套。

根据else子句总是与之前最近的if语句配对。

5.答案:B。

由于B项:if(x=y) &&(x!=0) x+=y ; if 后的条件表达式没有用圆括号括起来。

正确的是:if((x=y) &&(x!=0))x+=y ;二、根据要求完成程序填空1、z > y z > x y > x2、ch >= …A‟ && ch<=‟Z‟ch=ch-323、x < 0 x / 10 y!=2三、编程题1、编写一个程序,要求用户从终端键入两个整数数值。

检测这两个数,判定第一个数是否能被第二数整除,并在终端上显示相应的信息。

解:程序如下#include “stdio.h”main( ){int a , b ; /* a为第一个数,b为第二个数*/printf(“Please input two numbers: \n”) ;scanf(“%d%d” , &a ,&b) ;if( a%b = = 0 )printf(“%d能被%d整除。

\n” , a , b) ;elseprintf(“%d不能被%d整除。

\n” , a , b) ;}2、有3个整数a , b , c , 由键盘输入,输出其中最大的数。

解:程序如下#include “stdio.h”main( ){int a , b , c , max ;printf(“ Please input three numbers : \n”) ;scanf(“%d%d%d” , &a ,&b , &c) ;if(a>b) max = a ;else max = b ;if(max < c ) max = c ;printf( “The max is %d \n”, max ) ;}3、给出一百分制成绩,要求输出成绩等级A、B、C、D、E。

其中90分以上为A,80~89分为B,70~79为C,60~69为D,60分以下为E。

解:程序如下#include “stdio.h”main( ){float score ;int grade ;printf(“Please input a score :\n”);scanf(“%f “ ,&score) ;grade=(int ) score /10 ;switch(grade){ case 10:case 9: printf(“grade is A\n”) ; break ;case 8: printf(“grade is B\n”) ; break ;case 7: printf(“grade is C\n”) ; break ;case 6: printf(“grade is D\n”) ; break ;default: printf(“grade is E\n”) ;}}4、新世纪百货进行打折促销活动,消费金额(P)越高,折扣(d)越大,标准如下:消费金额折扣P < 100 0%100 ≤ P < 200 5%200 ≤ P < 500 10%500 ≤ P < 1000 15%P ≥ 1000 20%编程实现从键盘输入消费金额,输出折扣率和实付金额(f)。

相关文档
最新文档