第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/7/30 5:31:57 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

printf(\}

思考题:十六进制转换十进制

输入一个字符串(字符串的长度不超过80),对其做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转换为十进制数后输出。 例: 输入 Pf4+1

输出 3905

#include #define MAXLEN 80 void main( ) { int i,k;

long number;

char str[MAXLEN], num[MAXLEN]; gets(str);

for(k=0,i=0;str[i]!='\\0';i++)

if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='F'|| str[i]>='a'&&str[i]<='f')

num[k++]=str[i]; num[k]='\\0';

for(number=0,i=0;num[i]!='\\0';i++) {

if(num[i]>='A'&& num[i]<='F') k=num[i]-'A'+10;

else if(num[i]>='a'&&num[i]<='f') k=num[i]-'a'+10;

else if(num[i]>='0'&&num[i]<='9') k=num[i]-'0';

number=number*16+k; }

printf(\}

第四次上机作业参考答案:

9. 数组转置

在主函数中定义一个n(1<=n<=6)维方阵,并从键盘读入数组元素;编写函数transpose(a,n)实现数组a转置;在主函数中输出转置后的方阵。

例:输入 4

1 2 3 4 输出 1 5 9 13 5 6 7 8 2 6 10 14 9 10 11 12 3 7 11 15 13 14 15 16 4 8 12 16

#include #define N 6

void transpose(int a[][N],int n); void main( ) { int n,i,j;

16文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

int a[N][N];

printf(\ scanf(\

printf(\ for(i=0;i

scanf(\ printf(\ for(i=0;i

printf(\ printf(\ }

transpose(a,n);

printf(\ for(i=0;i

printf(\ printf(\ } }

void transpose(int a[][N],int n) {

int i,j,t;

for(i=0;i

a[i][j]=a[j][i]; a[j][i]=t; } }

10. 学生信息

编写4个函数实现下列功能:

(1)函数input() 输入20个学生姓名和高考总分;

(2)函数sort() 按高考总分从高到低的顺序排序,姓名顺序也随之调整; (3)函数display()显示学生姓名及其高考总分;

(4)在主函数中输入一个姓名,编写函数search() 用顺序查找方法找出该学生。若查找

成功,在主函数中显示该生姓名及其高考总分;否则显示查找失败。 #include #include #define N 3 #define LEN 80

void input(char name[][LEN],float s[]); void display(char name[][LEN],float s[]); void sort(char name[][LEN],float s[]); int search(char name[][LEN],char s[]);

17文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

void main( ) { int num;

char name[N][LEN],student[LEN]; float score[N];

input(name,score);

puts(\ display(name,score); sort(name,score); puts(\ display(name,score);

printf(\ fflush(stdin); gets(student);

num=search(name,student); if(num==-1)

puts(\ else

printf(\}

void input(char name[][LEN],float s[]) {

int i;

printf(\ for(i=0;i

{ scanf(\ scanf(\ } }

void display(char name[][LEN],float s[]) {

int i;

printf(\ for(i=0;i

{ printf(\ printf(\ } }

void sort(char name[][LEN],float s[]) { int i,j,k; float t;

char string[LEN]; for(i=0;i

for(j=i+1;js[k]) k=j;

18文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

if(k!=i)

{ t=s[i]; s[i]=s[k]; s[k]=t; strcpy(string,name[i]); strcpy(name[i],name[k]); strcpy(name[k],string); } } }

int search(char name[][LEN],char s[]) { int i;

for(i=0;i

if(strcmp(name[i],s)==0) return i; return -1; }

11. 字符串处理

定义两个C源程序文件:fmain.c 和 fstring.c。fmain.c中包含主函数,实现字符串处理功能选项和字符串的输入与结果的输出。fstring.c中包含两个函数delchar(s,c)和strrev(s),实现删除字符和字符串反转功能。

delchar(s,c):在主函数中输入字符串和要删除的字符,此函数将字符串s中出现的所有c字符删除;再在主函数中输出删除后的字符串。

strrev(s):在主函数中读入字符串,此函数实现将字符串s反转;再在主函数中输出反转后的字符串。

SAMPLE OUTPUT: 3. Reverse a string.

4. Delete a character in a string. Please input your choice: 1 Enter a string: holiday

Reversed string is:yadiloh

Would you like to continue? (y/n)Y 3. Reverse a string.

4. Delete a character in a string. Please input your choice: 2

Enter a string: one world, one dream Enter a character you want to delete: o Deleted string is:ne wrld, ne dream Would you like to continue?(y/n)N

/*fmain.c*/

#include

#include \#define N 80

void strreverse(char s[]); void delchar(char s[],char c); void main() { int choice1;

char choice2,c,s[N];

19文档收集于互联网,如有不妥请联系删除.

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持.

12.

while(1)

{ printf(\

printf(\ printf(\ scanf(\ switch(choice1)

{case 1: printf(\fflush(stdin); gets(s); strreverse(s);

printf(\:\puts(s); break;

case 2: printf(\fflush(stdin); gets(s); printf(\ fflush(stdin); c=getchar(); delchar(s,c);

printf(\:\ puts(s); break; }

printf(\ fflush(stdin); choice2=getchar(); if(choice2=='N' || choice2=='n') break; } }

/*fstring.c*/

#include

void strreverse(char s[]) { int i,j; char t;

j=strlen(s); j--;

for(i=0;i

{ t=s[i]; s[i]=s[j]; s[j]=t; } }

void delchar(char s[],char c) { int i,j;

char temp[80];

for(i=0,j=0;s[i]!='\\0';)

{ if(s[i]!=c) temp[j++]=s[i++]; else i++; }

temp[j]='\\0';

for(i=0;temp[i]!='\\0';i++) s[i]=temp[i]; s[i]='\\0'; }

分别用函数和带参数的宏,从三个数中找出最大数。

20文档收集于互联网,如有不妥请联系删除.

搜索更多关于: C语言上机作业试题5套含答案 的文档
C语言上机作业试题5套含答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c15qpn244rv1xep036fj71ujtp7zqyg019ju_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top