C语言程序设计上机实习答案.docx

上传人:b****6 文档编号:16634857 上传时间:2023-07-15 格式:DOCX 页数:55 大小:26.48KB
下载 相关 举报
C语言程序设计上机实习答案.docx_第1页
第1页 / 共55页
C语言程序设计上机实习答案.docx_第2页
第2页 / 共55页
C语言程序设计上机实习答案.docx_第3页
第3页 / 共55页
C语言程序设计上机实习答案.docx_第4页
第4页 / 共55页
C语言程序设计上机实习答案.docx_第5页
第5页 / 共55页
C语言程序设计上机实习答案.docx_第6页
第6页 / 共55页
C语言程序设计上机实习答案.docx_第7页
第7页 / 共55页
C语言程序设计上机实习答案.docx_第8页
第8页 / 共55页
C语言程序设计上机实习答案.docx_第9页
第9页 / 共55页
C语言程序设计上机实习答案.docx_第10页
第10页 / 共55页
C语言程序设计上机实习答案.docx_第11页
第11页 / 共55页
C语言程序设计上机实习答案.docx_第12页
第12页 / 共55页
C语言程序设计上机实习答案.docx_第13页
第13页 / 共55页
C语言程序设计上机实习答案.docx_第14页
第14页 / 共55页
C语言程序设计上机实习答案.docx_第15页
第15页 / 共55页
C语言程序设计上机实习答案.docx_第16页
第16页 / 共55页
C语言程序设计上机实习答案.docx_第17页
第17页 / 共55页
C语言程序设计上机实习答案.docx_第18页
第18页 / 共55页
C语言程序设计上机实习答案.docx_第19页
第19页 / 共55页
C语言程序设计上机实习答案.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计上机实习答案.docx

《C语言程序设计上机实习答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计上机实习答案.docx(55页珍藏版)》请在冰点文库上搜索。

C语言程序设计上机实习答案.docx

C语言程序设计上机实习答案

实验一

1.

标题:

1、编写程序,在屏幕输出HappyNewYear!

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编写程序,在屏幕输出“HappyNewYear!

输入:

输出:

HappyNewYear!

输入样例:

输出样例:

HappyNewYear!

提示:

1、可参考P35,例2.1完成;

2、输出语句用printf("HappyNewYear!

\n");实现,注意\n的使用;

3、代码中不能出现system("PAUSE");及getch();等语句。

#include

#include

intmain()

{

printf("HappyNewYear!

\n");

return0;

}

2.

标题:

2、比较两个整数的大小

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

输入两个整数,比较它们的大小并输出其中最大的一个整数。

输入:

两个整数。

输出:

最大值

输入样例:

59

输出样例:

9

提示:

1、需要两个整型变量来接收数据的输入,可用inta,b;语句实现;

2、用scanf("%d%d",&a,&b);语句接收用户输入的数据;

3、用intMax(intx,inty);自定义函数实现两个整数的比较,返回最大值

4、用printf("%d\n",c);语句输出结果。

5、可参考P36,例2.2实现。

#include

#include

intMax(int,int);

intmain()

{

inta,b;

int*P1,*P2;

P1=&a;

P2=&b;

scanf("%d%d",P1,P2);

printf("%d\n",Max(a,b));

return0;

}

intMax(intx,inty)

{

returnx>y?

x:

y;

}

3.

标题:

3、公式计算

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   请编程序完成y=x2+2x+1的变换,并输出x从0变化到10的变换结果。

输入:

输出:

   输出x从0变化到10的变换结果

输入样例:

输出样例:

x      y

0      1

1      4

2      9

3      16

4      25

5      36

6      49

7      64

8      81

9      100

10     121

提示:

1.可定义函数:

intConvert(intx)实现相应计算

/*下面的为用户自定义函数,完成数据转换功能*/

intConvert(intx)

{

   intz;      /*变量定义语句。

定义整型变量z*/

   z=x*x+2*x+1;  /*算术表达式,注意x2需要写成x*x,2x需要写为2*x等*/

   return(z);     /*函数返回语句,返回z的值即转换结果*/

}

2.输出语句所使用的格式符请设定为:

"%d\t%d\n";

#include

#include

intConvert(intx);

intmain()

{

intx;

inty;

inttop=0;

intbottom=10;

intstep=1;

x=top;

printf("x\ty\n");

while(x<=bottom)

{

y=Convert(x);

printf("%d\t%d\n",x,y);

x=x+step;

}

return0;

}

intConvert(intx)

{

intz;

z=x*x+2*x+1;

return(z);

}

4.

标题:

4、简单加密

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   假设将26个小写字母首尾链接起来,做成一个圈(a连接在z的后面),请编制程序将给定字符串的每一个字符沿顺时针方向移动10个字符组成一个新的字符串,并输出该字符串。

输入:

给定的长度小于80的字符串.

输出:

每一个字符沿顺时针方向移动10个字符组成一个新的字符串

输入样例:

ilikecprogramminglanguage!

输出样例:

svsuomzbyqbkwwsxqvkxqekqo!

提示:

可用如下函数实现字符变换:

voidStrShift(char*p)

{

   //“*p+10”表示移动10个字符

   //a的ASCII码值十进制为97,

}

#include

#include

intmain()

{

chara[80];

intch;

ch=0;

while((a[ch]=getchar())!

=EOF)

{

if(a[ch]>='a'&&a[ch]<='p')

{

a[ch]+=10;

}

elseif(a[ch]>='q'&&a[ch]<='z')

{

a[ch]-=16;

}

printf("%c",a[ch]);

}

return0;

}

5.

标题:

5、字符统计

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序,计算从键盘输入的空格键,Tab键,换行键的次数。

输入:

从键盘输入字符。

输出:

输入的空格键,Tab键,换行键的次数。

输入样例:

Helloworld!

   clanguage!

输出样例:

211

提示:

1、可用转义字符或ASCII值进行判断;

2、输出格式字符串用“%d%d%d\n”;

3、用EOF(ASCII码为-1,键盘对应输入为Ctrl+Z)终止输入。

#include

#include

#defineWORD1

#defineNON_WORD0

intmain()

{

intch;

intiCountSP;/*定义变量iCountSP,用于存放输入的空格键数*/

intiCountTab;/*定义变量iCountTab,用于存放输入的Tab键数*/

intiCountLF;/*定义变量iCountLF,用于存放输入的换行键数*/

iCountSP=0;

iCountLF=0;

iCountTab=0;

while((ch=getchar())!

=EOF)

{

if(ch=='')

{

++iCountSP;

}

elseif(ch=='\t')

{

++iCountTab;

}

elseif(ch=='\n')

{

++iCountLF;

}

}

printf("%d%d%d\n",iCountSP,iCountTab,iCountLF);

return0;

}

6.

标题:

6、字符串复制

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序将键盘输入的字符存入数组a[80]中,并将该数组中的所有字符复制到数组b[80]中,同时去掉所有的空格。

输入:

键盘输入的字符串。

输出:

去掉所有的空格后,复制到的字符串。

输入样例:

Helloworld!

输出样例:

Helloworld!

提示:

1、字符串结束符为“\0”。

#include

#include

intmain()

{

intch;

ch=getchar();

while(ch!

=EOF)

{

if(ch!

='')

{

putchar(ch);

}

ch=getchar();

}

return0;

}

7.

标题:

7、字符串的反转

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制函数voidReverse(charch[]),用于完成字符串的反转。

输入:

任意一个字符串(长度小于100)。

输出:

反转后的字符串。

输入样例:

Hello

输出样例:

olleH

#include

#include

voidReverse(charch[]);

charch[100];

charp;

inta;

intmain()

{

while((p=getchar())!

='\n')

{

ch[a]=p;

a++;

}

Reverse(ch);

return0;

}

voidReverse(charch[])

{

inti;

if(a<100)

{

for(i=a-1;i>=0;i--)

{

printf("%c",ch[i]);

}

}

printf("\n");

}

8.

标题:

8、求阶乘

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制函数Factorial(unsignedintn),用于计算n!

其中n≤13。

输入:

整数n。

输出:

n!

输入样例:

5

输出样例:

120

提示:

考虑n>13时的结果。

#include

#include

unsignedintFactorial(unsignedintn);

intmain()

{

unsignedintn;

scanf("%u",&n);

printf("%u\n",Factorial(n));

return0;

}

unsignedintFactorial(unsignedintn)

{

unsignedintresult,i;

result=1;

for(i=1;i<=n;++i)

{

result=result*i;

}

returnresult;

}

实验二

1.

标题:

1、二进制数操作

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序计算一个unsignedlong型整数的二进制表示中1的个数。

要求用函数实现。

函数名为intBitCount(longl)

输入:

一个unsignedlong型整数。

输出:

一个unsignedlong型整数的二进制表示中1的个数。

输入样例:

45L

输出样例:

4

#include

#include

intBitCount(longl);

intmain()

{

unsignedinta;

scanf("%u",&a);

printf("%d\n",BitCount(a));

return0;

}

intBitCount(longl)

{

inti=0;

inta=0;

while(l!

=0)

{

a=l%2;

l/=2;

if(a==1)i++;

}

returni;

}

2.

标题:

2、变量交换

(一)

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序实现两个整型变量的互换。

输入:

两个整型量。

输出:

交换后的两个整型量。

输入样例:

59

输出样例:

95

提示:

可以利用第三个变量作为临时变量实现交换。

#include

#include

intmain()

{

inta,b,temp;

int*p1,*p2;

scanf("%d%d",&a,&b);

p1=&a;

p2=&b;

temp=*p1;

*p1=*p2;

*p2=temp;

printf("%d%d\n",a,b);

return0;

}

3.

标题:

3、变量交换

(二)

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序实现两个char型变量的互换。

输入:

两个char型变量。

输出:

交换后的两个char型变量。

输入样例:

ab

输出样例:

ba

提示:

要求不使用第三个变量作为临时变量,可利用异或(^)运算或用如下算法实现:

   a=a-b;

   b=a+b;

   a=b-a;

#include

#include

intmain()

{

chara;

charb;

scanf("%c%c",&a,&b);

a=a-b;

b=a+b;

a=b-a;

printf("%c%c\n",a,b);

return0;

}

4.

标题:

4、数据类型

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编写一个程序计算你所使用的编译系统和计算机系统的char,int,long,float,double类型所占用的字节数,并分别输出显示。

输入:

输出:

char,int,long,float,double类型所占用的字节数。

输入样例:

输出样例:

1

4

4

4

8

 

提示:

用sizeof运算符求字节数,比如sizeof(char)就是char型变量在内存中所占数据的字节数。

#include

#include

intmain()

{

intc,i,l,f,d;

c=sizeof(char);

i=sizeof(int);

l=sizeof(long);

f=sizeof(float);

d=sizeof(double);

printf("%d\n%d\n%d\n%d\n%d\n",c,i,l,f,d);

return0;

}

5.

标题:

5、进制转换

(一)

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序,将十六进制数转换为十进制数。

如转换不成功,则输出0。

输入:

一个十六进制数。

输出:

对应的十进制整数。

输入样例:

0x4E

输出样例:

78

 

提示:

提示:

十六进制以0x或0X开头,十六进制允许的符号有0~9,A~F,a~f。

#include

#include

intmain()

{

inta;

scanf("%x",&a);

printf("%u\n",a);

return0;

}

6.

标题:

6、菜单程序设计

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制一个菜单程序Menu(),利用switch语句完成菜单的选择,当输入'A'时,输出“FunA”,当输入'B'时,输出“FunB”,当输入C时,输出“FunC”,当输入其他字符时返回-1,输出“-1”,结束程序。

输入:

菜单选择字符。

输出:

相应函数的输出内容。

输入样例:

A

输出样例:

FunA 

#include

#include

intMenu();

intmain()

{

intc;

while((c=getchar())!

=EOF)

{

switch(c)

{

case'A':

printf("FunA\n");

break;

case'B':

printf("FunB\n");

break;

case'C':

printf("FunC\n");

break;

default:

printf("-1\n");

break;

}

return0;

}

}

7.

标题:

7、字符串转化为整数程序

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序实现将一个数字字符串转化为整数。

输入:

一个数字字符串。

输出:

对应整数。

输入样例:

1234

输出样例:

1234

提示:

要求用函数intAtoi(charstr[])实现。

#include

#include

intAtoi(charstr[]);

intmain()

{

charstr[80];

inti=0;

for(i=0;i<80;i++)

{

str[i]=0;

}

scanf("%d",&i);

printf("%d\n",i);

return0;

}

8.

标题:

8、进制转换

(二)

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制程序实现voidItob(intn,chars[],intb),将整数n转换为b进制的表示形式,并存入字符数组s中。

比如:

Itob(n,s,16),s就是n的十六进制编码字符串。

输入:

整数n和要转换为进制。

输出:

b进制编码字符串。

输入样例:

4516

输出样例:

2D

#include

#include

voidReverse(intn,chars[],intb);

charch[100];

intmain()

{

chars[100];

intn,b;

scanf("%d%d",&n,&b);

Reverse(n,s,b);

printf("%s\n",ch);

return0;

}

voidReverse(intn,chars[],intb)

{

inti;

intj=0;

intk=0;

for(i=0;n>0;i++)

{

j=n%b;

if(j>9)

{

s[i]=j+'A'-10;

}

else

{

s[i]=j+'0';

}

n=n/b;

}

i=i-1;

while(i>=0)

{

ch[k]=s[i];

k++;

i--;

}

ch[k]='\0';

}

试验三

标题:

1、查找字符串中的字符

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

编制函数intStrchr(chars[],charch),用于返回字符串s中从左边开始第一次出现字符ch的位置,如果字符串s中没有字符ch则返回-1。

序号从0开始计.

输入:

一个字符串和一个字符。

输出:

字符串s中从左边开始第一次出现字符ch的位置,如果字符串s中没有字符ch则返回-1。

输入样例:

HelloClanguage.

C

输出样例:

6

#include

#include

#include

intStrchr(chars[],charch);

intmain()

{

chars[100];

inti;

charch;

gets(s);

scanf("%c",&ch);

i=Strchr(s,ch);

printf("%d\n",i);

return0;

}

intStrchr(chars[],charch)

{

intj,k=0;

inta=0;

j=strlen(s);

while(a<=j)

{

if(s[a]==ch)

{

k++;

returna;

}

a++;

}

if(k==0)

{

return-1;

}

return0;

}

2.

标题:

2、字符统计

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计一个函数,统计任意一串字符中数字字符的个数,并在主函数中调用此函数。

输入:

任意一串字符

输出:

字符串中数字字符的个数

输入样例:

abs1234ajbkc

输出样例:

4

#include

#include

intReverse(charch[]);

intmain()

{

charch[100];

inti;

scanf("%s",ch);

i=Reverse(ch);

printf("%d\n",i);

return0;

}

intReverse(charch[])

{

inta,b=0;

for(a=0;ch[a]!

='\0';a++)

{

if(ch[a]>='0'&&ch[a]<='9')

{

++b;

}

}

returnb;

}

3.

标题:

3、整数排序

时 限:

1000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   设计一个函数,对任意n个整数排序(从大到小),并在主函数中输入数据个数n和n个整数,调用此函数实现排序。

输入:

   第一行:

所要输入的整数个数

   第二行:

依次输入n个整数,中间用空格符隔开

输出:

   依次输出排序后的n个整数,中间用一个空格符隔开

输入样例:

10<----数据个数

0123456789

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2