云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > c语言上机实验题

c语言上机实验题

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 6:39:31

a f c o e n g p h t j i l u n d p e \\0 \\0 【含有错误的源程序】 #include char #include cs[2][10]={\char cs[2][10]={\

void encode(char s1[], char s2[]) void encode(char s1[], char s2[]) { { int n,i,j; int n,i,j; for(n=0;s1[n]!='\\0';n++) for(n=0;s1[n]!='\\0';n++) { {

for(i=0;i<10 && s1[n]!=cs[0][i]; for(i=0;i<10 && s1[n]!=cs[0][i]; i++ );

if(i<10) s2[n]=cs[1][i] ; i++ );

if(i<10) s2[n]=s1[n] ; else s2[n]=s1[n]; else s2[n]=cs[1][i]; } } s2[n]='\\0'; s2[n]='\\0'; } } main() main() { { char ts[80]=\ char ts[80]=\ encode(ts,td); encode(ts,td); puts(td); puts(td); getch(); } }

49. 请编辑调试下列2个程序,观察、理解其运行结果,并叙述它们各自的功能。 【源程序2】

#include 【源程序1】

#include int com(char a[],char b[]) #include { void main() int i=0; { int i; while(a[i]==b[i]&&a[i]!='\\0') char a[20],b[10]; i++; gets(b); return !(a[i]-b[i]); i=0; } while(a[i]=b[i]) void main() i++; { puts(a); char a[20],b[20]; } int n; gets(a); gets(b); n=com(a,b); if(n==0)printf(\ else printf(\

50. 两个等长的二进制数之间的海明距离是指对应位数字不同的位数。如二进制数100101和001110之间的海明距离为4。设计算机系统使用16位二进制位表示一个十进制整数,请按下列要求完善程序:

(1) 完善函数void DecToBin(char str[], int n),其功能是将非负整数n转换成16位二进制数字字符串,按由低位向高位存入数组str中;

(2) 完善函数int Hymin(char *x , char *y),其功能是统计x、y指向的两个16位二进制数字字符串对应位数字不同的位数,并返回统计结果; (3) 在主函数中输入两个十进制正整数39和15,分别调用函数DecToBin将它们转换为二进制数字字符串,再调用函数Hymin计算它们之间的海明距离并输出。 【源程序】

void DecToBin(char str[] , int n) { void DecToBin(char str[] , int n) int i=0,j; { while(n!=0) int i=0,j; { str[i++]=___________; while(n!=0) n=_______; { str[i++]=n%2+48; } n=n/2; for(j=i ; j<16 ; j++) } str[j]= '0'; for(j=i;j<16;j++) } str[j]= '0'; } int Hymin(char x[] , char y[]) int Hymin(char x[] , char y[]) { int count=0, i ; { int count=0, i ; for(i=0; i<16 ; i++) for(i=0; i<16 ; i++) if(____________) count++; if(x[i]!=y[i]) count++; return count; return count; } } void main() void main() { { int m,n; int m,n; char a[17],b[17]; char a[17],b[17]; scanf(\ scanf(\ _______________; DecToBin(a,m); _______________; DecToBin(b,n); printf(\of %d and %d printf(\of %d and %d = %d\\n\= %d\\n\} getch();

} 测试数据:39 15↙

输出结果:distance of 39 and 15 = 2

51. 请编写函数int fun(int x[],int m,int n),其功能是:求出m到n中满足条件千位上的数减百位上的数减十位上的数减个位上的数大于零的数,将这些数依次存储到x所指向的数组中,函数返回满足条件的数的个数。编写main函数,声明一长度为1000的一维数组,并从键盘上输入m和n的值,用a、m、n作为实在参数调用函数fun。调试程序时,请输入m

和n的值分别为5000和6000,以每行5个输出满足条件的数及该类数的个数。

#include

int fun(int x[],int m,int n) {

int i,a,b,c,d,t=0; for(i=m;i<=n;i++) {

a=i/1000; b=i/100; c=i/10; d=i; if(a-b-c-d>0) x[t++]=i; }

return t; }

main() {

int x[1000],m,n,i;

scanf(\m=fun(x,m,n); for(i=0;i

printf(\ if((i+1)%5==0) printf(\ }

printf(\ getch(); }

52. 请编写函数void fun(int a[],int n),其功能是:生成并一个数列的前20项。该数列的第一、二项分别为2、3,其后继项按下列规则生成:若前两项的乘积是一位数,则取该乘积为后继项;若前两项的乘积是二位数,则取该乘积的十位数字和个位数字依次作为数列的两个后继项。编写main函数,声明一个足够大的数组a(数组长度为100),并从键盘上输入待生成数列中元素的个数n,用a和n作为实在参数调用函数fun,按每行5个依次输出数列中的各数。

#include void fun(int a[] ,int n) { int i,t;

a[0]=2,a[1]=3; for(i=2;i<20;i++) { t=a[i-2]*a[i-1];

if(t<10) a[i]=t; else

{ a[i++]=t/10; a[i]=t; } } }

main()

{ int a[100],n,i; fun(a,n);

scanf(\for(i=0;i

printf(\if((i+1)%5==0) printf(\getch(); }

55. 要求40名学生对学生食堂的饭菜质量按照从1到10(1意味着非常不好,10表示非常好)进行打分,分别统计出打各分数的人数。请按下列要求编写程序:(1)编写void cont (int a[],int n, int b[]),其功能是对a指向的长度为n的整型数组中存储的分值作统计,统计结果依次存入b所指向的数组中;(2)设计main函数,声明一个长度为40的整型数组并用下列测试数据初始化,声明一个长度为11的数组b,用a、40和b作为实在参数调用cont函数,输出统计结果至屏幕。注意:b[1]中存放打分值1的人数,b[2]中存放打分值2的人数,依次类推。

测试数据:1,2,6,4,8,9,10,2,3,4,2,3,4,5,4,6,7,8,6,9,1,6,7,8,7,6,9,10,8,6, 7,6,8,9,5,4,3,9,8,7

#include

void cont(int a[],int n,int b[]) {

int i;

for(i=0;i

main() {

int a[40]={1,2,6,4,8,9,10,2,3,4,2,3,4,5,4,6,7,8,6,9,1,6,7,8,7,6,9,10,8,6,7,6,8,9,5,4,3,9,8,7}, b[11]={0},i; cont(a,40,b);

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

printf(\ getch(); }

56. 请按下列要求编写程序:(1)编写int fun(int a[],int n, int b[]),其功能是将a指向的长度为n的数组中的整数中下标是奇数且该位元素值大于10的整数依次写到b指向的数组

搜索更多关于: c语言上机实验题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

a f c o e n g p h t j i l u n d p e \\0 \\0 【含有错误的源程序】 #include char #include cs[2][10]={\char cs[2][10]={\void encode(char s1[], char s2[]) void encode(char s1[], char s2[]) { { int n,i,j; int n,i,j; for(n=0;s1[n]!='\\0';n++) for(n=0;s1[n]!='\\0';n++) { { for(i=0;i<10 && s1[n]!=cs[0][i]; for(i=0;i<10 && s1[n]!=cs[0][i]; i++ );

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com