C语言作业5

合集下载

C语言第五六次作业

C语言第五六次作业

#include<stdio.h> #include<string.h> void itob(int n,char s[],int b) { int flag=1; int sum=0; int i,j; char ch; if (n<0) {flag=0;n=-n;} memset(s,„\0‟,sizeof(s));/*数组初始化*/ while (n>0)/*不断除b取余*/ { s[sum++]=n%b; n=n/b; } for (i=0,j=sum-1;i<j;i++,j--) /*将数字倒序存放*/ {ch=s[i];s[i]=s[j];s[j]=ch;}
——第四弹
。。原来真正变态的是这两作业哇~ 原本是做完第五次作业等大家数分期中考完以后给大家,结果 直接出了第六次。就顺便做了。买一送一还包邮哦亲~ 虽然这两次作业比较难。理解起来困难无比。。不过考试的时 候不会有这么变态的题目啦~放心
当前编程题:11级第五次作业---凸多边形面积1. 【问题描述】给出平面上一组顶点的坐标,计算出它们所围成的凸多 边形的面积。 【输入形式】从标准输入读取顶点坐标。格式为:第一行是点的个数 N(3≤N≤15),后面紧接着N行,每行两个数字 (由空格隔开),分 别表示该点的X、Y坐标(0≤X,Y≤32767)。所有点的坐标互不相同, 且按顺时针次序给出。 输入数据确保该多边形是一个凸多边形。 【输出形式】向标准输出打印一个浮点数,是该多边形的面积。该浮 点数保留两位小数。 【输入样例】 4 3 3 3 0 1 0 1 2 【输出样例】 5.00 【样例说明】输入数据表示了如图所示的四边形。其面积为5.00。 提示:求三角形面积可用海伦公式,求平方根可用<math.h>头文件中 定义的sqrt函数。 【评分标准】结果完全正确得20分,每个测试点4分。提交程序名为: points.c。

C语言第五、六章补充作业-答案

C语言第五、六章补充作业-答案

第五章补充作业【题1////////Xa b cA)(x<=a)&&(x>=b)&&(x<=c)B)(x<=a)||(b<=x<=c)C)(x<=a)||(x>=b)&&(x<=c)D)(x<=a)&&(b<=x<=c)【题2】判断char型变量ch是否为大写字母的正确表达式是 C 。

A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)C)(ch>=‘A’)&&(ch<=‘Z’) D)(‘A’<=ch)AND(‘Z’>=ch)【题3】设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是 D 。

A)‘x’&&‘y’B)x<=yC)x||y+z&&y-zD)!((x<y)&&!z||1)【题4】已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<‘B’&&!y)的值是 C 。

A)0 B)语法错C)1 D)“假”【题5】设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为 B 。

A)1 B)2 C)3 D)4【题6】以下程序的运行结果是 B 。

#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A)6,1 B)2,1 C)6,0 D)2,0【题7】执行以下语句后a的值为【D】,b的值为【A】。

int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);++a||++b&&++c;【1】A)5 B)0 C)2 D)1【2】 A)6 B)0 C)1 D)4【题8】有一函数关系见下表:下面程序段中能正确表示上面关系的是 C 。

C语言程序设计第五次作业——循环结构(1)

C语言程序设计第五次作业——循环结构(1)

C语⾔程序设计第五次作业——循环结构(1)(⼀)改错题输出华⽒摄⽒温度转换表:输⼊两个整数lower和upper,输出⼀张华⽒摄⽒温度转换表,华⽒温度的取值范围是{lower,upper},每次增加2℉。

计算公式如下:c = 5×(f-32)/9其中,c表⽰摄⽒温度,f表⽰华⽒温度。

输⼊输出样例1: Enter lower:32 Enter upper:35 fahr celsius 32 0.0 34 1.1输⼊输出样例2: Enter lower:40 Enter upper:30 fahr celsius源程序(有错误的程序)#include <stdio.h>int main(void){int fahr , lower, upper; /* fahr表⽰华⽒度 */double celsius; /* celsius表⽰摄⽒度 */printf("Enter lower:");scanf("%d",&lower);printf("Enter upper:");scanf("%d",&upper);printf("fahr celsius\n"); /* 显⽰表头 *//* 温度转换 */for (fahr = lower , fahr <= upper, fahr ++) ;celsius = 5 /9 * (fahr - 32.0);printf("%3.0f %6.1f\n", fahr, celsius);return 0;}对源程序进⾏编译,结果如下:错误信息1:错误原因:for语句后⾯加了分号。

改正⽅法:将分号去掉。

错误信息2:错误原因:for语句下没有加“{}“改正⽅法:在for语句下加上“{}”错误信息3:错误原因:发现for语句内语句⽤逗号隔开了。

C语言程序设计习题5

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语言习题知识5

C语言习题知识5

void main()
{
int x;
scanf("%d",&x);
if(x--<5) printf("%d\n",x);
else printf("%d\n",x++);
} 程序运行后,如果从键盘上输入 5,则输出结果是( )
A) 3
B) 4
C) 5
D) 6
(12)若执行以下程序时从键盘上输入 9,则输出结果是( )
scanf("%f,%f",&a,&b);
if (a>b)
{
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f",a,b);
}
运行后输入-3.5,4.8,正确的输出结果是( )
A) -4.80 , -3.50
B) -3.50 , 4.80
C) 4.8, -3.5
D) 4.80, -3.50
A) 11
B) 10
C) 9
D) 8
#include <stdio.h>
void main()
{
int n;
scanf("%d",&n);
if(n++<10) printf("%d\n",n);
else printf("%d\n",n--);
} (13)若 a、b、c1、c2、x、y、均是整型变量,正确的 switch 语句是( )
printf("%5.2f\n",z);
}
(14)如果 int x=10,执行下面程序后,变量 x 的结果为 13 。

大连理工c语言第五次上机作业参考答案

大连理工c语言第五次上机作业参考答案

第五次上机作业:(请用指针实现)1.数据移位有n(n<=10)个整数,使前面各数顺序向后移m(m<=n)个位置,最后m 个数变成最前面的m个数,如图所示。

编写函数shift(a,n,m)实现上述功能,在主函数中输入n个整数和输出调整后的n个数。

SAMPLE OUTPUTnInput n(n<=10):10Input 10 integers:Output the original:Output the shifted:#include <>#define N 10void shift(int a[ ],int n,int m);void main( ){ int i,n,m;int a[N];printf("Input n(n<=10):");scanf("%d",&n);printf("Input %d integers:\n",n);for(i=0;i<n;i++)scanf("%d",a+i);printf("Output the original:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");printf("Input m(m<=%d):",n);scanf("%d",&m);shift(a,n,m);printf("Output the shifted:\n");for(i=0;i<n;i++)printf("%d ",*(a+i));printf("\n");}void shift(int a[ ],int n,int m){ int i,j,t;for(i=0;i<m;i++){ t=a[n-1];for(j=n-2;j>=0;j--)a[j+1]=a[j];a[0]=t;}}2.字符串排序在主函数中输入10个不等长的字符串放入二维字符数组中,编写函数sort()利用指针数组对其排序,在主函数中输出排好序的字符串。

C语言上机作业试题5套含答案

C语言上机作业试题5套含答案

第一次上机作业(2021):要求:独立完成,上机调试通事后上交作业提交邮件主题命名:班级学号姓名(第1次作业),例如:电1301班2王鹏(第1次作业)以附件形式将每次作业的所有程序源程序紧缩打包后提交,紧缩文件命名格式同上。

程序必需采用缩进格式1.大写字母转换成小写字母从键盘输入一个大写英文字母,输出相应的小写字母。

例:输入G输出g2.求平方根输入一个实数x,计算并输出其平方根(保留1 位小数)。

例:输入17输出The square root of is3.温度转换设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32)a)输入华氏温度(实型)b)输出的摄氏温度结果保留两位小数例:Please input Fahrenheit temperature:The corresponding Celsius temperature is4. 计算旅途时刻输入二个整数time1 和time2,表示火车的起身时刻和抵达时刻,计算并输出旅途时刻。

(输入的有效的时刻范围是0000 到2359,不需要考虑起身时刻晚于抵达时刻的情形。

)例:输入712 1411 (起身时刻是7:12,抵达时刻是14:11)输出The train journey time is 6 hours 59 minutes.5. 数字加密输入一个四位数,将其加密后输出。

方式是将该数每一名上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。

例:输入1257输出The encrypted number is 4601试探题:你可否编程找出谁做的好事?有四位同窗中的一名做了好事,不留名,夸奖信来了以后,校长问这四位是谁做的好事。

⏹A说:不是我。

⏹B说:是C。

⏹C说:是D。

⏹D说:他乱说。

已知三个人说的是实话,一个人说的是谎话。

此刻要依照这些信息,找出做了好事的人。

C语言实验五最简单的C语言程序设计

C语言实验五最简单的C语言程序设计

C语⾔实验五最简单的C语⾔程序设计实验5:最简单的C语⾔程序设计⼀、实验⽬的:(1)掌握C语⾔中使⽤最多的⼀种语句——赋值语句的使⽤⽅法。

(2)掌握各种类型数据的输⼊输出的⽅法,能正确使⽤各种格式转换符。

(3)进⼀步掌握编写程序和调试程序的⽅法。

⼆、实验内容和步骤:1、通过下⾯的程序掌握各种格式转换符的正确使⽤⽅法。

(1)输⼊以下程序:/* Note:Your choice is C IDE */# includeint main( ){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61,b=62;c1='a';c2='b';d=3.56;e=-6.87;f=3157.890121;g=0.123456789;m=50000;n=-60000;p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d\np=%u,q=%u\n",f,g,m,n,p,q);显⽰结果:(2)运⾏此程序并分析结果。

(3)在此基础上,将程序第10~14⾏改为c1=a,c2=b;f=3157.890121;g=0.123456789;d=f;e=g;运⾏程序,分析结果。

/* Note:Your choice is C IDE */#include"stdio.h"int main(){int a,b;float d,e;char c1,c2;double f,g;long m,n;unsigned int p,q;a=61;b=62;c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e);printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q);}显⽰结果:(4)⽤sizeof运算符分别检测程序中各类型的数据占多少字节。

c语言作业实验心得5篇

c语言作业实验心得5篇

c语言作业实验心得5篇C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。

C语言能以简易的方式编译、处理低级存储器。

C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

下面是带来的有关c语言作业实验心得,希望大家喜欢c语言作业实验心得1在科技高度发展的今天,计算机在人们之中的作用越来越突出。

而C语言作为一种计算机的语言,学习它将有助于我们更好的了解计算机,与计算机进行交流,因此,我们一定要学好C语言,这对我们以后的发展是十分重要的。

说到这,上机实验当然就是一个必不可少的环节了,C语言灵活、简洁的特点,只有通过编程实践才能真正了解,真正说懂。

为了更好地学习语法规定、掌握程序设计方法、提高程序开发能力,我们必须实际上机、编写程序。

通过实验我也发现了自己不少的问题,这都是只看书上的程序而没有自己亲身上机编写程序而无法得知的,假如我们只因看熟书上的程序就以为自己已经掌握了C语言那就大错特错了。

我主要存在以下的这些缺点:1、学习耐心与细心不足,如scanf(“%d”,&amp;n);中的“&amp;”有时候会忘了。

而在最后输出时又错写成printf(“%d”,&amp;n);从而错误得输出了地址而不是我原来想要的答案。

2、编程思想不够发散,看着题目有时想不出解答的方法,更不用说编写程序来解题了。

3、4、基本功不够,有些函数的表达不太精通,需要看书来核实,以致耗时较多。

知识不够广,有些内容没有学好,不能要用到时及时反映出来,认识程度不够深刻。

5、6、有时候不够精简,有一点用处不大或者说没有也可以的文字存在。

英语水平较差,对错误的地方虽然电脑有说,但由于是英文,理解上还是存在一点问题。

为了能更好地学好C语言,在今后学习中我要更多的动脑,综合运用所学,多看相关东西,多上机练习,提高电脑水平,增强自学能力,把已会的东西掌握好。

实验中我深刻意识到完成程序的编写,决不意味着万事大吉。

c语言5

c语言5

5.1.3 与指针有关的运算
例5-2 分析下列程序的输出结果。
#include <stdio.h> void main( ) { char a[5]="1234"; char *p; p=a; /*指针变量p指向数组的第一个元素a[0]*/ printf("%d\n",*p); /*输出第一个元素的ASCII值*/ p++; /*指针变量p指向数组的第二个元素a[1]*/ printf("%d\n",*p); /*输出第二个元素的ASCII值*/ }
指针是一种数据类型。 指针是指存放数据的 内存地址 。程序中定义的 变量、数组都要分配内存空间,通过这些空间的地 址可以访问存储在其中的数据,也就是引用变量或 数组元素。可以看出,指针提供了访问数据的另一 种方法(通过变量名访问数据是一种)。
5.1.1 指针的概念
“指针”是个地址概念,是指内存储器中存储单元的地 址。变量在内存中使用存储空间的起始地址,称为该变量 的指针,如图所示。
又:一维数组元素的指针法引用 *(x+i) 与 x[i]等价, 所以,二维数组元素的指针引用法形式为: *(*(x+i)+j) 例5-5 使用指针的方法,输出二维数组的元素。 void main() { int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int i,j; for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%5d",*(*(x+i)+j)); printf("\n"); } }
5.1.3 与指针有关的运算

C语言平时作业5

C语言平时作业5

题目1:从键盘上输入三个整数(a,b,c),输出三个数,然后再按照大小的顺序对其排序(排序后有:a>=b>=c),在输出排序后的三个数。

程序如下:#include <stdio.h>void main(){int a,b,c,t;printf("请输入三个整数:");scanf("%d,%d,%d,%d",&a,&b,&c);if(a<=b)t=a,a=b,b=t;if(a<=c)t=a,a=c,c=t;if(b<=c)t=b,b=c,c=t;printf("%d>=%d>=%d",a,b,c);}截图:题目2;从键盘上输入一百分制成绩x,要求确定并输出该成绩对应的等级g(g 的取值为‘A’、‘B’、‘C’、‘D’、‘E’之一)。

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

程序如下:#include <stdio.h>void main(){double x;char ch;printf("请输入一百分制成绩:");scanf("%lf",&x);if(x>=90)ch='A';else if(x>=80)ch='B';else if(x>=70)ch='C';else if(x>=60)ch='D';elsech='E';printf("%lf的等级为%c",x,ch);}截图:。

C语言试题及答案解析(五)

C语言试题及答案解析(五)
D.以上三种说法均不正确。
8.指出下列程序段中那个语句是不正确的( )(int x,y,z[10],*px,*py)
A. px=&x,py=px B. px=x C. py=&y D. px=z
9.在printf语句中按字符串输出的格式是( )
A. “%s” B. “%c” C. “%f” D. “%d”
{ int a=5,*b,**c;
c=&b; b=&a;
……
}
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是( )
A.变量a的地址B.变量b中的值
C.变量a中的值D.变量b的地址
二、写出下列程序的执行结果(每题5分,共20分)
1.2.
3.4.
三、程序改错题(每题5分,共20分)
注:下列每小题有一个错误,找出并改正
1.#i nclude "stdio.h"
main()
{ char c,*ch=&c;
while((c=getchar())!=’\n’)
{ if(ch>=’a’&&ch<=’z’)
putchar(*ch-’a’+’A’);
else
putchar(*ch);
}
}
2.求100以内的正整数中为13的倍数的最大值。
则下列说法中正确的是( )
A. x数组和y数组长度相同B.x数组长度大于y数组长度
C.x数组长度小于y数组长度D.以上三种说法均错误。
7.返回值为void的函数,其含义是( )
A.调用函数之后,被调用的函数没有返回值;
B.调用函数之后,被调用的函数不返回

C语言作业5(函数)

C语言作业5(函数)
{ fun1(5,6); fun2();
Printf(“%d%d\n”,a,b);
}
7.有以下程序
#include<stdio.h>
int f(int X);
main()
{ int n=1,m;
m=f(f(f(n)));printf("%d\n",m);
}
int f(int x)
p=d++; printf("%d",p);}
main()
{ int a=1;
fun(a);printf("%d\n",a);}
程序运行后的输出结果是________。
A)32 B)12 C)21 D)22
3.设有如下函数定义
int fun(int k)
{ if(x!=y) return((x+y)/2);
else return(x);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));
}
程序运行后的输出结果是
A)3 B)6 C)8 D)12
5.有以下程序
printf("\n\nsum=%f\n\n",sum);
}
7.函数fun的功能是:按以下递归公式求函数值。
┌ 10 (n=1)
fun(n)=┥
└ fun(n-1)+2 (n>1)
例如,当给n输入5时,函数值为18;当给n输入3时,函数值为14。
{ return x*2;}
程序运行后的输出结果是

C语言第五章习题带答案

C语言第五章习题带答案

练习5-1答案一、选择题1.合法得数组说明语句就是( B )。

A.int a[]="string";B.int a[]={0,1,2,3,4,5};C.char a="string";D.char a[5]={'0', '1', '2', '3', '4', '5'};2.以下对一维整型数组a得说明正确得就是( D )。

A.int a(10);B.int n=10, a[n];C.int n;D.#define SIZE 10scanf("%d", &n); int a[SIZE];int a[n];3.已知:int a[10];,则对a数组元素得正确引用就是( D )。

A.a[10]B.a[3、5]C.a(5)D.a[10-10]4.以下对一维数组a进行正确初始化得语句就是( C )。

A.int a[10]=(0, 0, 0, 0, 0);B.int a[10]={};C.int a[]={0};D.int a[2]={10, 9, 8};5.对以下说明语句得正确理解就是( B )。

int a[10]={6, 7, 8, 9, 10};A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值得个数不相同,所以此语句不正确二、填空题6.求所有不超过200得N值,N得平方就是具有对称性质得回文数。

所谓回文数就就是将一个数从左到右与从右到左读都就是一样得,例如:34543与1234321都就是回文数。

例如:满足题意要求得数有:N=1,11*11=121;N=111,111*111=12321。

#include <stdio、h>main(){int m[16], n, i, t, count=0;long a, k;printf("Result is:\n");for (n=10; n<200; n++){ k=0;t=1;a=n*n;for (i=1; a!=0; i++){ ①;a/=10;}for (; i>1; i--){ k+=m[i-1]*t;②;}if ( ③) printf("%2d:%10d %10d\n", ++count, n, n*n);}}则①为( m[i]=a%10; )、②为( t*=10; )、③为( k==n*n )。

C语言作业题(第5至6章)-20111008

C语言作业题(第5至6章)-20111008
二、填空题
【1】下面程序用“顺序查找法”查找数组a中是否存在某一关键字。请填空。
#include <stdio.h>
voidmain( )
{ int a[9]= {25,57,48,37,12,92,86,33},i,x;
scanf (″%d″,&x);
; i=0;
while(a[i]! =x)i++;
printf(″%d\n″,n);
}
【6】下面程序的功能是从三个红球、五个白球、六个黑球中任意取出八个球,且其中必须有白球,输出所有可能的方案。请填空。
#include<stdio.h>
void main()
{ int i,j,k;
printf(″\n hong bai hei \n″);
for (i=1;i<=3;i++)
{ int m=0,n=0;
char c;
while (([1]!='\n’))
{ if(c>='A’&&c<='Z’) m++;
if(c>=பைடு நூலகம்a’&&c<='z’) n++;
}
printf ("%d\n",m<n ?[2]);
}
[1]A) c=getchar() B)putchar()C) c=getch()D)scanf("%c",c)
for (; m++)
{ x=m/100;
y=;
z=m%10;
if (x*100+y*10+z==x*x*x+y*y*y+z*z*z)

C语言程序设计作业五(指针,文件)

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语言试卷5

C语言试卷5

C语言模拟考试学号:5 姓名:赵莎得分:1 ..................................................................单项选择C语言程序中必须有的函数是()。

A.#include "stdio.h"B.mainC.printfD.scanf【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]下列语句中符合C语言语法的语句是:( ).A.x=y+2=x+y+z;B.x=7+y,y++,z++;C.x=(3+b,z)=x+3;D.x=3+y++=x+3;【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]C语言执行程序的开始执行点是()。

A.程序中的main函数B.程序中第一个函数C.包含文件中的第一个函数D.程序中第一条可以执行语言【评分报告得分:1.0 之 1.0 】【参考答案】正确A【学生答案】A若有定义:int *p[3];,则以下叙述中正确的是()。

A.定义了一个基类型为int的指针变量p,该变量具有三个指针B.定义了一个名为*p的整型数组,该数组含有三个int类型元素C.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素【评分报告得分:0.0 之 1.0 】【参考答案】错误C【学生答案】[未答此题]C语言中的文件的存储方式有()。

A.只能从文件的开头进行存取B.可以顺序存取,也可随机存取C.只能随机存取(或直接存取)D.只能顺序存取【评分报告得分:0.0 之 1.0 】【参考答案】错误B【学生答案】[未答此题]能将高级语言编写的源程序转换为目标程序的是()。

A.编译程序B.链接程序C.解释程序D.编辑程序【评分报告得分:0.0 之 1.0 】【参考答案】错误A【学生答案】[未答此题]下列数据中属于"字符串常量"的是( )。

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案

C语言实验报告实验五参考答案实验五一维数值数组(参考答案)1、设计程序sy5-1.c,计算n门课程的平均分。

例如:若有5门课程的成绩是:90.5.72.80.61.5.55,则平均分是:71.80.算法分析:先求n门课的成绩总和,(累加求和),再用累和除以课程数。

参考答案:includevoid main()double score[30]。

sum=0,aver;int n,i;printf("Inputn:");scanf("%d",&n);printf("请依次输入%d门课程的成绩",n);for(i=0;i<n;i++)scanf("%lf",&score[i]);sum=sum+score[i];aver=sum/n;printf( "\nAverage scoreis: %5.2f\n"。

aver);运行结果:2、设计步伐sy5-2.c,对输入的10个整数按倒序寄存后输出成效。

算法阐发:利用“半数交流”算法,最前面的元素和末了面的元素交流,逐步向中央挨近。

可利用两个下标变量i和XXX。

参考答案:includeint main()int a[10]={1,2,3,4,5,6,7,8,9,10};int i,j,t;for( i=0,j=9.i<j。

i++,j--)//逐一向中,交换。

直到已没有元素没交换t=a[i]。

a[i]=a[j]。

a[j]=t;}// a[i]-数组前端的数,a[j]-数组后端的数printf("交流后数组元素是:");for(i=0;i<10;i++)printf("%5d",a[i]);//%5d,5透露表现宽度printf("\n");//输出完所有的数后换行return 0;运行结果:3、设计程序sy5-3.c,输入10个整数,找出其中的最大数及其所在的下标。

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

28 组成最大数成绩: 10 / 折扣: 0.8任意输入一个自然数,输出该自然数的各位数字组成的最大数。

例如,输入 1593 ,则输出为 9531 。

输入: 自然数 n输出: 各位数字组成的最大数测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1以文本方式显示 1. 1593✪以文本方式显示 1. 9531✪1秒64M#include<stdio.h> #include<string.h> int main(){ char a[10000]; int x[10]={0}; scanf("%s",a); int n=strlen(a); for(int i=0;i<n;i++){x[a[i]-'0']++;} for(int i=9;i>=0;i--) for(int j=0;j<x[i];j++){printf("%d",i);} printf("\n"); }29 北理工的恶龙成绩: 10 / 折扣: 0.8背景:最近,北理工出现了一只恶龙,它长着很多 头,而且还会吐火,它将会把北理工烧成废墟, 于是,校长下令召集全校所有勇士杀死这只恶龙。

要杀死这只龙,必须把它所有的头都砍掉,每个勇士只能砍一个龙头,龙的每个头大小都不一样,一个勇士只有在身高不小于龙头的直径的情况下才能砍下它。

而且勇士们要求,砍下一个龙头必须得到和自己身高厘米数一样的学分。

校长想花 最少的学分数 杀死恶龙,于是找到你寻求帮助。

输入:第一行龙头数n , 勇士人数m (1<=n, m<=100 )接下来n 行,每行包含一个整数,表示龙头的直径接下来m 行,每行包含一个整数,表示勇士的身高l输出:如果勇士们能完成任务,输出校长需要花的最小费用;否则输出“ bit is doomed! ”测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1. 2 3✪2.5✪3.4✪4.7✪5.8✪6.4✪以文本方式显示1.11✪1秒64M 0测试用例2 以文本方式显示1. 2 1✪2.5✪3.5✪4.10✪以文本方式显示1.bit is doomed!✪1秒64M 0#include<stdio.h>int main(){int dragon,hero;scanf("%d%d",&dragon,&hero);int dragonhead[100]={0};int herohight[100]={0};//inputfor(int i=0;i<dragon;i++)scanf("%d",&dragonhead[i]);for(int i=0;i<hero;i++)scanf("%d",&herohight[i]);//make the date in orderint temp;for(int i=0;i<dragon;i++){for(int j=0;j<dragon-1;j++){if(dragonhead[j]>dragonhead[j+1]){temp=dragonhead[j];dragonhead[j]=dragonhead[j+1];dragonhead[j+1]=temp;}}}for(int i=0;i<hero;i++){for(int j=0;j<hero-1;j++){if(herohight[j]>herohight[j+1]){temp=herohight[j];herohight[j]=herohight[j+1];herohight[j+1]=temp;}}}//arrange hero to kill the dragonint start=0;for(int i=0;i<dragon;i++){for(int j=start;j<hero;j++){if(herohight[j]>=dragonhead[i]){dragonhead[i]=0;start++;break;}else{herohight[j]=0;start++;}}if (start>hero)break;}for(int i=start;i<hero;i++)herohight[i]=0;//caculate the gradeint sd=0;int sh=0;for(int i=0;i<dragon;i++)sd=sd+dragonhead[i];for(int i=0;i<hero;i++)sh=sh+herohight[i];if(sd==0)printf("%d\n",sh);elseprintf("bit is doomed!\n");}31 合并字符串成绩: 10 / 折扣: 0.8输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到大排列。

输入:两个已经排好顺序(升序)的两个字符串输出:一个合并在一起的有序(升序)的字符串要求:设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。

如果采用先进行串连接,然后再进行排序的算法,则效率太低了。

测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1.abcdef✪2.bcefghi✪以文本方式显示1.abbccdeeffghi✪1秒64M 0测试用例2 以文本方式显示1.123456✪2.789✪以文本方式显示1.9✪1秒64M 0测试用例以文本方式显示以文本方式显示1秒64M 0#include<stdio.h>int main(){char a[50],b[50];gets(a);gets(b);char *p1;p1=&a[0];char *p2;p2=&b[0];for(;1;){if(*p1=='\0'){printf("%s",p2);break;}if(*p2=='\0'){printf("%s",p1);break;}if(*p1>*p2){printf("%c",*p2);p2++;} else { printf("%c",*p1); p1++; } }printf("\n");}32 串的减法成绩: 10 / 折扣: 0.8输入字符串s 和t (串长不超过80个字符),将在字符串s 中出现,但未在字符串t 中出现的字符组成一个新的字符串放在u 中,u 中字符按原字符串中字符顺序排列,不去掉重复字符,输出u 。

例如:当s="112345",t="2467"时,u="1135"。

输入:第一行为串s 第二行为串t 输出: 串u测试输入 期待的输出 时间限制 内存限制 额外进程测试用例 1以文本方式显示1. 112345✪2. 2467✪以文本方式显示1. 1135✪1秒64M#include<stdio.h> #include<string.h> int main() { char a[80]; char b[80]; gets(a); gets(b); int l=strlen(a); for(int i=0;b[i]!='\0';i++) {for(int j=0;j<l;j++)if(a[j]==b[i])a[j]='\0';}for(int k=0;k<l;k++)if(a[k]!='\0')printf("%c",a[k]);printf("\n");}H9:五年级小学生的题目(选做)成绩: 5 / 折扣: 0.8那两个小朋友在不断进步,他们已经学会了负数和多位数,于是他们又开始进行游戏了。

小明给出一堆整数和运算要求(+、-、*、/、%),小丽要找出这些整数中的最大值和最小值,然后按照小明的要求算出最大数与最小数进行算术运算的结果。

输入:用逗号分隔的整数序列,及其运算符和等号输出:最大数op 最小数=结果说明:本题目应该可以不使用数组就可以完成,关键是如何处理负数和减法。

测试输入期待的输出时间限制内存限制额外进程测试用例1 以文本方式显示1.1,10,100,+,=✪以文本方式显示1.100 + 1 = 101✪1秒64M 0测试用例2 以文本方式显示1.-100,-1,1,100,+,=✪以文本方式显示1.100 + (-100) = 0✪1秒64M 0测试用例3 以文本方式显示1.-20,-10,0,10,20,*,=✪以文本方式显示1.20 * (-20) = -400✪1秒64M 0#include<stdio.h>#include<string.h>int intpow(int a,int b)//a^b{int result=1;for(int i=0;i<b;i++)result=result*a;return result;}struct date{int max;int min;char op;int r;};struct date function(char p[],int n){struct date result;n=n-4;int max=-10000;int min=10000;int count=0;//need back to 0int x[10]={0};//need back to 0int temp=0;//need back to 0int sign=1;//need back to 1for(int i=0;i<=n;i++){if (p[i]==',')//meet , means end caculate the value and compare with max and min{for(int k=0;k<count;k++)temp=temp+x[k]*intpow(10,count-1-k);temp=temp*sign;if(temp>max) max=temp;if(temp<min) min=temp;count=0;temp=0;sign=1;continue;}if(p[i]=='-'){sign=-1;continue;}else{x[count]=p[i]-'0';count++;}}char opp;opp=p[n+1];if(opp=='+'){result.r=max+min;result.op='+';}else if(opp=='-'){result.r=max-min;result.op='-';}else if(opp=='*'){result.r=max*min;result.op='*';}else if(opp=='/'){if(min==0)result.r=0;else{result.r=max/min;}result.op='/';}else if(opp=='%'){result.r=max%min;result.op='%';}result.max=max;result.min=min;return result;}int main(){char w[100];gets(w);int l=strlen(w);struct date cc=function(w,l);if(cc.op=='/'&&cc.min==0)printf("Error!");else{if(cc.max<0)printf("(%d)",cc.max);elseprintf("%d",cc.max);printf(" %c ",cc.op);if(cc.min<0)printf("(%d)",cc.min);elseprintf("%d",cc.min);printf(" = ");printf("%d",cc.r);printf("\n");}}H10:扫雷(选做)成绩: 5 / 折扣: 0.8背景你玩儿过扫雷游戏吧?有个操作系统中带了这个小游戏,那个系统叫什么来着?在游戏中要想过关,就必须要在一个NxM 的区域上找出所有的地雷。

相关文档
最新文档