C语言程序设计习题5
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.以下叙述中正确的是( )A. C程序中注释部分可以出现在程序中任意合适的地方B. 花括号"{"和"}"只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语句之间的分隔符,不是语句的一部分2.在一个C语言程序中( )A. main函数必须出现在所有函数之前B. main函数可以在任何地方出现C. main函数必须出现在所有函数之后D. main函数必须出现在固定位置3.判断下面标识符中哪个是C语言中合法的用户定义标识符( )A. a-bB. #abdC. typedefD. _max4.为表示关系X≥Y≥Z,应使用C语言表达式( )A. (X≥Y)&&(Y≥Z)B. X>=Y>=ZC. (X>=Y)‖(Y>=Z)D. (X>=Y)&&(Y>=Z)5.设有一分段函数:x=1 a<b且c=dx=2 a>=b则下列程序段哪个是正确的( )A. if(a<b)B. if (a<b)C. if (a>b)D. if (a>=b)if(c= =d) {if (c= =d) if (c= =d) x=2;x=1; x=1; x=1; elseelse x=2; else x=2;} else x=2; {if(c= =d) x=1;}6.若有两条语句:static char x[]=”abcde”;static char y[]={…a‟,‟b‟,‟c‟,‟d‟,‟e‟};则下列说法中正确的是( )A. x数组和y数组长度相同B.x数组长度大于y数组长度C.x数组长度小于y数组长度D.以上三种说法均错误。
7.返回值为void的函数,其含义是( )A.调用函数之后,被调用的函数没有返回值;B.调用函数之后,被调用的函数不返回C.调用函数之后,被调用的函数返回值为任意类型D.以上三种说法均不正确。
C语言程序设计习题5

习题5参考解答1.数组是相同数据类型的集合,分为一维数组、二维数组及多维数组。
在什么情况下使用数组?在什么情况下使用一维数组?解:当需要处理的数据为相同类型的数据的集合时,可以使用数组。
如果这些数据的描述用一个量就可以,这时就用一维数组。
例如,一组学生的学号,就可以使用一维数组。
2.数组元素又称为下标变量,数组元素的下标有何意义?解:下标的意义是对数组的各个数组元素进行标识和区分。
由数组名和下标结合起来形成数组元素的名字。
3.使用字符数组来存储字符串应注意什么问题?解:需要注意的问题是字符数组在存储字符串时是以'\0'作为结束标记的。
这个'\0'是系统自动加上的。
所以字符数组的长度需要比它要存储的字符串的长度至少多1。
例如,要存储字符串"abcd",因为它的长度为4,所以存储它的字符数组的长度至少为5。
4.常用的字符处理函数有哪些?解:常用的字符处理函数有以下8个。
(1)puts(字符串):作用为将一个字符串输出到终端。
(2)gets(字符数组):作用为从终端输入一个字符串到字符数组,并且得一个函数值。
(3)strcat(字符串1,字符串2):作用为进行字符串的连接。
(4)strcpy(字符串1,字符串2):作用为进行字符串的复制。
(5)strcmp(字符串1,字符串2):作用为进行字符串的比较。
(6)strlen(字符串):作用为求字符串的长度。
(7)strlwr(字符串):作用为将字符串中的大写字母转换成小写字母。
(8)strupr(字符串):作用为将字符串中的小写字母转换成大写字母。
5.随机产生10个两位整数存储到一个一维数组中,找出其中的最大数。
解:#include<stdio.h>#include<stdlib.h>#define random(x) (rand()%x) int main(){int a[10],max;int x;for(x=0;x<10;x++)a[x]=random(100);max=a[0];for(x=0;x<10;x++){if(a[x]>max)max=a[x];printf("%4d",a[x]);}printf("\nmax=%d\n",max);return 0;}程序运行结果如下:41 67 34 0 69 24 78 58 62 64 max=786.输入10个整数,要求按照从小到大的顺序输出。
C语言程序设计 (何钦铭 颜晖 著) 高等教育出版社第五章 课后答案

{
double e,x,cos;
printf("Enter two numbers e and x :"); /*输入两个数e,x */
scanf("%lf%lf",&e,&x);
cos=funcos(e,x); /*调用函数funcos */
printf("The result of cos(%lf) is %lf.\n",x,cos);
printf("sign(%lf)=%d\n",x,y); /*输出x的符号*/
}
int sign(double x) /*定义函数sign */
{
int y;
if(x>0)y=1;
else if(x==0)y=0;
else y=-1;
return y;
}
练习5-2
#include <stdio.h>
#include <stdio.h>
int even(int n); /*声明函数even */
void main()
{
int num,sum=0;
printf("Enter the first number :"); /*输入第一个数*/
scanf("%d",&num);
while(num>0)
{
{
int i,j;
for(i=1;i<=n;i++) /*共n行金字塔*/
{
for(j=1;j<=n-i;j++)printf(" "); /*输出每行左边的空格*/
C语言程序设计模拟试题五

高级语言程序设计试题五》、单项选择题(每题 1 分,共20 分)1字符串“ abcd\tef\Og”的长度是()A 、9 B、7 C、6D、4 2.下列描述中不正确的是A 、字符型数组中可以存放字符串B、可以对字符型数组进行整体输入、输出C、可以对整型数组进行整体输入、输出D、不能在赋值语句中通过赋值运算符“二“对字符型数组进行整体赋值3. 设int x=1,y=1;表达式(!x||y--)的值是A、OB、1C、24. 以下循环体的执行次数是A、3B、2C、1main(){ int i,j;for(i=O,j=1;i<=j+1;i+=2,j--)printf(}5. 以下程序的输出结果是main(){ int x=1O,y=1O,i;for(i=O;x>8;y=++i)printf( “ %d %d” ,x--,y)}A、1O 1 9 2B、9 8 76、已知:char str1[20]= ” abcdd' ,str2[20]= ” xyz”;则执行语句:printf ( “%d” , strlen ( strcpy ( str1,str2 ) ) );输出结果是()A 、9B 、3C 、5D 、87、已知int a[10];则对a数组元素的正确引用是()A、a[10]B、a[3.5]C、a(5) D、a[10-10] 8、若已有定义char str[7];要将键盘输入的字符串“a pea r “赋给str,应使用A、gets(str);B、scanf(“%s” ,str);C、str=” a pear” ; D、getchar(str);9. 若定义函数int *func1(),则func1的函数返回值是A、整数B、指向函数的指针10. typedef int BIGGY; 的作用是A、建立了一个新的数据类型C、定义了一个长整型变量C、整型数的地址D、以上说法均错B、定义了一个整型变量D、说明了一个新的数据类型标识符D、-1D、O%d\n” ,i);6 C、1O 9 9 O D、1O 1O 9 111. C语言规定,函数的返回值类型是A、由return语句中的表达式类型决定的B、由调用该函数时的主调函数类型决定的C、由系统决定的D、由该函数定义时的类型决定的12、已知函数定义的形式如下:struct data * f(void ){ .............. }则函数 f ( )A 、没有参数,返回值是一个结构B 、有一个参数void, 返回值是一个结构C、没有参数,返回值是一个结构指针D 、有一个参数 void, 返回值是一个结构指针13、对于 int *pa[5] ;的描述,( )是正确的A 、 pa 是一个指向数组的指针,所指向的数组是 5个int 型元素B 、 pa 是一个指向某数组中第5个元素的指针,该指针是int 型变量C 、 p a[5]表示某个数组的第5个元素的值D 、 pa 是一个具有5个元素的指针数组,每一个元素是一个int 型指针 14•在C 语言中,switch 语句后一对圆括号中表达式的类型A 、可以是任何类型C 、可以是整型或字符型 15、 已知: struct{ int i;char c;float a;} test;贝U sizeof(test)的值是()A 、 4B 、 5C 、 616、 在高级语言中对文件操作的一般步骤是(A 、打开文件一操作文件一关闭文件B 、操作文件 —修改文件 — 关闭文件C 、 读写文件一打开文件一关闭文件D 、 读文件一写文件一关闭文件17.有如下程序段int *p,a=10,b=1; p=&a;a=*p+b;执行该程序段后,a 的值是A 、 12B 、 11C 、 1018•执行以下程序段后,s 的值是 int a[]={5,3,7,2,1,5,4,10};int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k);A 、 17B 、 27C 、 1319.以下程序中有语法错误,有关错误原因的正确说法是 main(){ int G=5,k;void par_char(int x,int y);k=par_char(G);}A 、 语句void par_char();有错,不能用void 说明函数的类型B 、 变量名G 不能使用大写字母C 、 函数说明和函数调用语句之间有矛盾D 、 函数名不能使用下划线20.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));贝在此函数调用语句中实参的个数是A 、 3B 、 4C 、 5D 、 6B 、只能是int 类型 D 、只能是整型或实型D 、 7 D 、编译出错 D 、无定值2 分,共10 分)、多项选择题(下列各题中,有一个或多个正确答案,多选或少选均不得分。
C语言程序设计练习五(参考答案)

C语言程序设计练习五(参考答案)五、程序设计题1.从键盘上输入10个整数,并将其存放在一数组中,求出该数组中所有大于零且为偶数的数的平均值。
#includevoidmain(){inta[10],i,n=0;floataver=0;for(i=0;i<10;i++)canf(\for(i=0;i<10;i++)if(a[i]>0&&a[i]%2==0){aver+=a[i];n++;}aver=aver/n;printf(\}2.若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。
(从键盘输入n某n个整型数,n≤20)#include#defineN20voidmain(){inta[N][N],n,i,j,k=0,t=0;canf(“%d”,&n);for(i=0;i}printf(“k=%d,t=%d\\n”,k,t);}3.从键盘输入n某n个整型数(n≤20),组成n行n列数组,打印出其上三角数组。
#includevoidmain(){inta[20][20],i,j,n;canf(\for(i=0;icanf(\for(i=0;iprintf(\printf(\}}4.用以下近似公式编一个求的近似值的程序。
1111,其中n的值由键盘输入。
1(1)n143572n1#includevoidmain(){floatpi=0.0,=1.0;intn,i;canf(\for(i=1;i<=n;i++){pi=pi+/(2某i-1);=某(-1.0);}printf(\}25.若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。
#includevoidmain(){inta[]={8,2,5-3,7,-9,0,-4,10,15},ma某,min,ima某=a[0];min=a[0];for(i=1;i<10;i++){if(a[i]>ma某)ma某=a[i];If(a[i]}printf(“ma某=%d,min=%d\\n”,ma某,min);}6.从键盘上输入一个正整数n(n≤10),求n的阶乘并输出结果。
C语言程序设计试卷5(含答案)

注意事项:1、本试卷共13 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,不得使用红颜色墨水笔。
二、阅读程序题答题处:(每空3分,共30分)三、程序改错题答题处:(每空2分,共12分)四、完善程序填空题答题处:(每空2分,共18分)一、单项单选题:(每题 1 分,共40 分)(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)1.以下标识符中,能够作为变量名使用的是【1】。
A) n_1 B) charC) x(2) D) 2_a2.若有定义语句char ch='\072'; 则变量ch 【2】。
A) 定义错误B) 包含1个字符C) 包含3个字符D) 包含4个字符3.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【3】。
char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);A) D,D B) 68,DC) D,68 D) 68,684.若有如下语句:int x; float y;scanf("k=%d,f=%f",&x,&y);则能够正确的为变量x输入5、为变量y输入3.2的方法是【4】。
说明:备选答案中的<CR>表示回车符A) 5 3.2 <CR> B) 5 <CR> 3.2 <CR>C) k=5,f=3.2 <CR> D) x=5,y=3.2 <CR>5.执行下列程序段后,输出结果是【5】。
int k=10; printf("%d,%o,%x",k,k,k);A) 12,a,10 B) 12,10,aC) 10,12,a D) 10,a,126.判断char 型变量ch 是否为小写字母的正确表达式是【6】。
C语言程序设计教程第五章练习题题目

单选题1、关于数组的定义与初始化,下列哪一项是错误的()A.int arr[5] = {1,2,3,4,5};B.int arr[] = {1,2,3,4,5};C.int arr[5] = {1,2,3};D.int arr[5] = {1,2,3,4,5,6};2、在定义数组int arr[10]后,下列选项中对arr的引用正确的是()A.arr[10]B.arr[6.3]C.arr(6)D.arr[0]3、在C语言中,引用数组元素时,其数组下标的数据类型允许是()4、若int arr[5] = {1,2,3}; 则arr[2]的值为()5、在执行int arr[][3] = {1,2,3,4,5,6}:语句后,arr[1][0]的值为()6、关于二维数组,下列选项能正确定义并赋初值的是()A.int n = 5,b[n][n];B.int a[1][2] = {{1},{3}};C.int c[2][] = {{1,2},{3,4}};D.int a[3][2] = {{1,2},{3,4}};7、阅读下列程序段:char s[18] = "a book!";printf("%.4s\n", s);其输出结果为()A.a book!B.a bookC.a bo8、阅读下列程序:int a[4][4] = { { 1, 3, 5, }, { 2, 4, 6 }, { 3, 5, 7 } };printf("%d%d%d%d\n", a[0][0], a[1][1], a[2][2], a[3][3]);正确的输出结果为()9、阅读下面程序:int i;int x[4][4] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };for (i = 0; i<4; i++)printf("%3d", x[i][3 - i]);下列选项中哪一项是正确的输出结果()A.1 5 9 13B.1 6 11 16C.4 7 10 13D.4 8 12 1610、下列描述中不正确的是()。
《C语言程序设计》教材习题答案第5章

一、选择题1.设有程序段”int k=10;while(k=0)k=k-1;”,则下面叙述正确的是D 循环体语句一次也不执行2.设有程序段”int x=0,s=0;while(!x!=0)s+=++x;printf(“%d”,s);”则A 运行程序段后输出13.若有语句”int x=3;do{printf(“%d\n”,x-=2);}while(!(--x));”,则该程序段C 输出的是1和-24.下面循环语句中,错误的是D int a=1,b=2;do b--while(b= =0);5.已知”int i=5;”,下列do…while循环语句的循环次数为C 5do{printf(“%d\n”,i--);}while(i!=0);6.循环语句”for(int i=0,j=10;i=j=10;i++,j--)”的循环次数是D 无限7.循环语句”while(int i=0;)i--;”的循环次数是A 08.下述有关break语句的描述中,不正确的是C break语句用于if语句的内嵌语句内,它结束该if语句9.下面关于循环语句的描述中,错误的是B 循环体内必须同时出现break语句和continue语句10.以下不是死循环的是D for(;(c=getchar()!=’\n’);)printf(“%c”,c);11.执行语句”for(i=0;i++<3;);”后,变量i的值为C 412.语句”for(x=0,y=0;y!=1&&x<4;x++);”是C 循环4次13.与语句”while(!x);”等价的语句是A while(x= =0);14.执行下列程序段后a的值为B 2int a=1,b=10;do{b-=a;a++;}while(b--<0)二、编程题1.读入用户输入的6个整数并显示其平均值。
#include<stdio.h>main(){float sum=0;int tmp;int i;for(i=0;i<6;i++){printf("输入第%d个数:",i+1);scanf("%d",&tmp);sum=sum+tmp;}printf("平均值是:%f",sum/6);}2.先读入一个正整数n,然后计算并显示前n个偶数的和。
C语言程序设计试题第五套-试卷

“C程序设计及实验”试题卷注意:答题内容必须写在答题卷上,写在本试题卷上无效一.单项选择题(每题1分,共10分)1. 下列运算符中,优先级最低的是_____。
A.<< B.!= C.&& D.=2. 以下选项中不正确的整型常量是_____。
A.0xa B.010L C.10 D.1.03. 表达式!(x>0||y>0) 等价于_____。
A.!(x>0)&&!(y>0) B.!x>0&&!y>0 C.!x>0||!y>0 D.!(x>0)||!(y>0)4. 表达式______的值不是0。
A.1/2 B.!’\0’C.!EOF D.NULL5. 若x 是浮点型变量,表达式(x=10/4) 的值是_____ 。
A.2.5 B.2.0 C.3 D.26. 若变量已正确定义并赋值,表达式______不正确。
A.a&b B.a^b C.&&x D.a, b7. 对于变量定义int a[10], *p=a;,表达式______是不正确的。
A.a[9] B.p[5] C.*p++ D.a++8. 不正确的赋值或赋初值的方式是______。
A.char str[10]; str="string"; B.char str[ ]="string";C.char *p="string"; D.char *p; p="string";9. 设程序中不再定义和声明变量,写出在函数fun中可以使用的所有变量______。
#include <stdio.h>void fun(int x){ static int y;……return;}int z;void main( ){ int a,b;fun(a);……}A.x, y B.x, y, z C.a,b,y,z D.a,b,x,y,z10. 对于变量定义int p[5], *a[5];,表达式______是正确的。
C语言程序设计课后习题参考答案

《C语言程序设计》课后习题参考答案(总23页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题1. A2. D二、填空题1. BASIC、FORTRAN、AL_GOL60和COBOL2. 83. 关键字4. 编辑、编译、链接和运行三、简答题1.答:(1)C语言具有结构化的控制语句。
C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。
(2)C语言具有丰富的数据结构类型。
C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。
C语言还提供了与地址密切相关的指针类型。
此外,用户还可以根据需要自定义数据类型。
(3)C语言具有丰富的运算符。
C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。
(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。
(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。
它既是成功的系统描述语言,又是通用的程序设计语言。
(6)C语言与汇编语言相比,可移植性好。
(7)功能强大。
C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。
现在许多系统软件都用C语言来描述,可以大大提高了编程效率。
2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。
3.答:(1)操作系统的设计与实现。
C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。
(2)工业控制。
由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。
C语言程序设计习题(含答案)

一、名词解释(每小题4分,共20分)1. 变量2. 赋值运算3. int4. 数组5. 函数二、单选题(每小题2分,共20分)1. 以下运算符中,表示取余数运算的是( )A. %B. /C. !=D. <=2. C语言中,表示“不等于”、“不相等”的运算符是( )A. ≠B. !=C. < >D. =/=3. C语言中,printf函数中的格式字符%d用来( )A. 输出一个字符串B. 输出单个字符C. 输出十进制整数D. 输出双精度浮点数4. C语言中,要求接受用户从键盘输入的一个英文字符到char型变量ch中,那么,该语句的正确写法是( )A. scanf("%z",ch);B. scanf("%c",ch);C. scanf("%z",&ch);D. scanf("%c",&ch);5. 定义一个用来存放双精度浮点数且名为x的变量的正确语句是( )A. double x;B. float x;C. Double x;D. Float x;6. 判断整数型变量score的取值是否在区间[60,100]的正确写法是( )A. if (score>=60 and score<=100)B. if (score>=60 && score<=100)C. if (score>=60 & score<=100)D. if (60<= score <=100)7. 定义最多能存放30个整数且名为scores的数组的正确语句是( )A. INT scores[30];B. int [30] scores;C. int scores[30];D. INT [30] scores;8. 利用string.h中库函数求字符串s的长度的表达式正确写法是( )A. len(s)B. length(s)C. strLen(s)D. strlen(s)9.利用string.h中库函数判断字符串s1大于等于字符串s2的正确写法是( )A. if(strcmp(s1,s2)>=0)B. if (s1>=s2)C. if(strcmp(s1,s2)≥0)D. if (s1≥s2)10. 以下能输出数字0,1,2,3,4,5,6,7,8,9且每行输出一个数字的正确语句是( )A. for( i=0; i<10; i++ ) { printf("%d",i); }B. for( i=0; i<10; i++ ) { printf("%d\n",i); }C. for( i=0; i<10; i++ ) { printf("%d\n",i+1); }D. for( i=0; i<10; i-- ) { printf("%d\n",i); }三、判断题(每小题2分,共10分)1. C语言中,int可以作为变量名,例如语句:char int;可以定义名为int 的字符型变量。
《C语言程序设计教程》习题参考答案

《C语言程序设计教程》习题参考答案《C语言程序设计教程》习题参考答案祝胜林主编华南理工大学出版社【习题1】 (1)【习题2】 (2)【习题3】 (3)【习题4】 (5)【习题5】 (8)【习题6】 (11)【习题7】 (14)【习题8】 (17)【习题9】 (17)【习题10】 (20)一、简答题(在课本中寻找答案,略)1.1C程序的基本结构包括哪些内容?1.2如何定义标识符?1.3输入格式、输出格式的组成包括哪些内容?1.4C语言函数分为哪两类?1.5计算表达式的值应该考虑哪些方面?1.6上机调试程序的步骤如何?二、判断并改错1.7C程序执行的入口是main()函数,所以main函数必须放在程序的开头。
错误:main函数可以放在程序的任何位置。
并不限定在程序的开头。
1.8定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。
错误:不可以交叉出现,数据说明部分在执行语句部分的前面。
1.9编辑与编译不是一回事。
错误:不是一回事。
编辑完成源程序的输入和修改;编译是对源程序进行语法检查,如果无语法错误,则生成目标程序。
1.10scanf("%d,%d",&x,&y);的正确输入格式:3,4<回车>。
正确1.11注释内容太多会影响程序的执行效率。
错误:不会影响程序的执行效率。
因为在编译时,编译系统将注释内容删除或用空格代替,所以注释内容不会编译到目标程序中。
1.12所有的数学公式可以直接出现在源程序中。
错误:数学公式需要转换成C语言能够接受的公式才能出现在源程序中。
三、编程题1.13在屏幕上输出自己名字的拼音。
提示:中文名字叫?张三?,对应的拼音为?Zhang San?,输出用printf()函数。
1.14 输入圆的半径,求圆的周长,并将结果保留两位小数输出到屏幕上。
提示:定义圆的半径r,圆的周长:2*3.14*r,输出结果保留2位小数可以用%.2f1.15输入两个整数,输出其中最大者。
C语言程序设计(PTA习题5-5使用函数统计指定数字的个数)

C语⾔程序设计(PTA习题5-5使⽤函数统计指定数字的个数)/*本题要求实现⼀个统计整数中指定数字的个数的简单函数*/#include <stdio.h>int CountDigit( int number, int digit ); //函数声明int main(){int number, digit;scanf("%d %d", &number, &digit);printf("Number of digit %d in %d: %d\n", digit, number, CountDigit(number, digit));return 0;}/* 你的代码将被嵌在这⾥ */int CountDigit( int number, int digit )//定义CountDigit这个计算数字个数的的函数{int i, number1;int n, count = 0;if(number!=0){if(number<0){number = -number; //将负数转为整数}else{while(number%10!=0){ //当number为个位数时退出循环i = number%10; //取出整数的个位数if(i==digit){ //判断是否为想要寻找的数字count++; //是的话count+1}number = number/10; //去掉最后⼀个数字}return count;}}else{ //如果这个整数为0,则0的个数为1count++; //count⾃增1return count;}}。
C语言全国试题(五-循环结构程序设计)

A) f=0; for (i=1; i<=n; i++) f*=i; B) f=1; for (i=1; i<n; i++) f*=i; C) f=1; for (i=n; i>1; i++) f*=i; D) f=1; for (i=n; i>=2; i--) f*=i;
printf("\n"); } }
A) 2 3 4 B) 4 3 2
C) 2 3 D) 4 5
345
543
34
34
45
23
填空题(全国二级C 2008Q2-8)
1 执行下述程序的输出结果是___________。
#include <stdio.h> main( ) { int i,j,sum;
for(i=3; i>=1; i--) { sum=0;
。
#include <stdio.h>
main( )
{ int i;
for ( i=1 ; i<=40; i++)
{ if (i++%5==0)
if (++i%8==0)printf("%d ",i); }
printf("\n"); }
A) 5
B) 24
C) 32
D) 40
选择题(全国二级C 2005Q1-27)
选择题(全国二级C 2003Q1-22)
若有如下程序段,其中s,a,b,c 均已定义为整型变量,且a,c均已赋值 (c大于0)。
s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句
C语言程序设计教程 第五章 课后习题参考答案

C语言程序设计教程第五章课后习题参考答案一、选择题1. B2. A3. C4. B5. D二、填空题1. while2. binary3. 164. 35. continue6. global三、判断题1. 错误2. 正确3. 错误4. 错误5. 正确四、编程题1.```c#include<stdio.h>int main() {int num;printf("请输入一个整数:"); scanf("%d", &num);if (num % 2 == 0) {printf("%d是偶数\n", num); } else {printf("%d是奇数\n", num); }return 0;}```2.```c#include<stdio.h>int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("%d与%d的和为%d\n", num1, num2, num1 + num2); return 0;}```3.```c#include<stdio.h>int isPrime(int num) {int i;if (num <= 1)return 0;for (i = 2; i <= num / 2; i++) {if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num); } else {printf("%d不是素数\n", num); }return 0;}```4.```c#include<stdio.h>int factorial(int num) {int i, result = 1;for (i = 1; i <= num; i++) {result *= i;}return result;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的阶乘为%d\n", num, factorial(num)); return 0;}```五、简答题1. C语言逻辑与运算符(&&)短路特性是什么?答:C语言逻辑与运算符(&&)具有短路特性,即在进行逻辑与运算时,如果前一个表达式的值为假(0),则后面的表达式将不会被计算,整个逻辑与表达式的值直接为假(0)。
C语言程序设计作业五(指针,文件)

C语言程序设计作业五1.对于类型相同的指针变量,不能进行哪种运算?(单选)A. +B. -C. =D. = =2. 若有以下说明和语句,且0<=i<10, 则下面哪个是对数组元素的错误引用?(单选)int a[]={1,2,3,4,5,6,7,8,9,0}, *p, i;p=a;A. *(a+i)B. a[p-a]C. p+iD. *(&a[i])3. 若有以下说明和语句,且0<=i<10,则下面哪个是对数组元素地址的正确表示?(单选)int a[]={1,2,3,4,5,6,7,8,9,0}, *p,i;p=a;A. &(a+1)B. a++C. &pD. &p[i]4. 以下程序的输出结果是___。
#include <stdio.h>main(){int a[]={1,2,3,4,5,6},*p;p=a;*(p+3)+=2;printf("%d,%d\n",*p,*(p+3));}A. 0,5B. 1,5C. 0,6D. 1,65. 以下程序的输出结果是哪一项?(单选)#include <stdio.h>main(){int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;for(i=0;i<4;i++)p[i]=&a[i*3];printf("%d\n",p[3][2]);}A. 输出项不合法B. 6C. 8D. 126. 如果有以下的定义:(多选)struct person{char name[20];int age;char sex;};struct person a={"xiao min",20,'m'},*p=&a;则对字符串"li ning"的引用方式可以是下面哪些?A. (*p).nameB. C. D. p->name7. 下面哪些定义的结构在内存分配是等价的。
C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。
存储器是计算机中具有记忆能力的部件,用来存放程序和数据。
输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。
4、什么叫软件说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。
在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
c语言第五章选择结构程序设计(习题册答案)

c语言第五章选择结构程序设计(习题册答案)第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑值。
C语言没有逻辑型数据,以1代表“真”,以0代表“假”。
2、逻辑运算符!是单目运算符,其结合性是由右结合性。
3、C语言提供的三种逻辑运算符是&&、|| 、!。
其中优先级最高的为!,优先级最低的为| | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。
系统最终以0 和非0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。
6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z||y<="">7、条件“2<x<3或x<-10”的c语言表达式是x<-10||x>2&&x<3。
</x<3或x<-10”的c语言表达式是x<-10||x>8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。
11、已知A=,B=2,C=,表达式A>B&&C>A||A<b&&!c>B的值是0。
</b&&!c>12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
解:
3
9.求一个3×3矩阵对角线元素之和。
解:
#include<stdio.h>
main()
{
float a[3][3],sum=0;
int i,j;
printf("请输入矩阵元素:\n");
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%f",&a[i][j]);
t=a[i];
a[i]=a[min];
a[min]=t;
}
printf("\n排序结果如下:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
}
程序运行情况如下:
请输入10个数:
6 90 45 56 1 15 44 78 58 101
排序结果如下:
1 6 15 44 45 56 58 78 90 101
void main()
{
int i,j,min,t,a[10];
printf("请输入10个数:\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<10-1;i++)
{
min=i;
for(j=i;j<10;j++)
if(a[min]>a[j]) min=j;
4.常用的字符处理函数有哪些?
解:常用的字符处理函数有以下8个。
(1)puts(字符串):作用为将一个字符串输出到终端。
(2)gets(字符数组):作用为从终端输入一个字符串到字符数组,并且得一个函数值。
(3)strcat(字符串1,字符串2):作用为进行字符串的连接。
(4)strcpy(字符串1,字符串2):作用为进行字符串的复制。
printf("%5d",a[i]);
return 0;
}
解:
1 5 9 11 11 13 15
(2)#include<stdio.h>
intmain()
{
int a[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=i;
for(i=0;i<3;i++)
解:下标的意义是对数组的各个数组元素进行标识和区分。由数组名和下标结合起来形成数组元素的名字。
3.使用字符数组来存储字符串应注意什么问题?
解:需要注意的问题是字符数组在存储字符串时是以'\0'作为结束标记的。这个'\0'是系统自动加上的。所以字符数组的长度需要比它要存储的字符串的长度至少多1。例如,要存储字符串"abcd",因为它的长度为4,所以存储它的字符数组的长度至少为5。
for (i=0;i<3;i++ )
sum=sum+a[i][i];
printf("对角线元素之和=%.2f\n",sum);
}
程序运行情况如下:
请输入矩阵元素:
1 2 3 4 5 6 7 89↙
对角线元素之和=15.00
10.找出一个二维数组中的鞍点,所谓鞍点是指该位置上的数在该行最大,在该列最小。需要注意的是,并不是所有的二维数组都有鞍点。
if(strcmp(p[i],p[j])>0)
{strcpy(t,p[i]); strcpy(p[i],p[j]); strcpy(p[i],t); }
}
int main()
{
char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
{
if(a[x]>max)
max=a[x];
printf("%4d",a[x]);
}
printf("\nmax=%d\n",max);
return 0;
}
程序运行结果如下:
41 67 34 0 69 24 78 58 62 64
max=78
6.输入10个整数,要求按照从小到大的顺序输出。
解:
#include<stdio.h>
if (max>a[k][maxj])
flag1=0;
if (flag1)
{
printf("\n第%d行,第%d列的%d是鞍点\n",i,maxj,max);
flag2=1;
}
}
if(!flag2)
printf("\n矩阵中无鞍点!\n");
}
矩阵中有鞍点,运行情况如下:
输入行数n:2↙
输入列数m:2↙
9876543210
8.写出下列程序的运行结果。
(1)#include<stdio.h>
void fun(int b[])
{
int i=0;
while(b[i]<=10)
{
b[i]+=2;
i++;
}
}
int main()
{
int i,a[]={1,5,7,9,11,13,15};
fun(a+2);
for(i=0;i<7;i++)
}
/*顺序颠倒*/
for(i=0;i<N/2;i++)
{
t=a[i];
a[i]=a[N-i-1];
a[N-i-1]=t;}来自printf("顺序颠倒后的字符:\n");
for(i=0;i<N;i++)
printf("%c",a[i]);
}
程序运行情况如下:
请输入10个字符:
0123456789↙
顺序颠倒后的字符:
7.输入10个字符,并将它们的顺序颠倒后输出。
解:
#include<stdio.h>
#define N 10
void main()
{
char a[N],t;
int i;
/*输入10个字符并输出*/
printf("请输入10个字符:\n");
for(i=0;i<10;i++)
{
scanf("%c",&a[i]);
for(j=1;j<=5;j++)
scanf("%d",&score[i][j]);
}
for(i=1;i<=30;i++)
{
score[i][6]=0;
for(j=1;j<=5;j++)
score[i][6]+=score[i][j];
}
printf("期末成绩单\n");
printf("%10s%10s%10s%10s%10s%10s%10s\n","学号","课程1","课程2","课程3","课程4","课程5","总分");
解:
#define N 10
#define M 10
#include <stdio.h>
void main()
{
int i,j,k,m,n,flag1,flag2,a[N][M],max,maxj;
printf("\n输入行数n:");
scanf("%d",&n);
printf("\n输入列数m:");
}
解:
3 5 7
(4)#include <stdio.h>
#include <string.h>
int main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r); strcat(p,q);
printf("%d\n%d\n",sizeof(p),strlen(p));
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
}
程序运行结果如下:
1
11
121
1331
14641
15101051
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
voidmain()
{
int i,j,a[N][N];
for(i=1;i<N;i++)
{
a[i][i]=1;
a[i][1]=1;