2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 吉林大学中国大学MOOC期末试题主观题

吉林大学中国大学MOOC期末试题主观题

时间:2023-11-17 08:43:10

相关推荐

吉林大学中国大学MOOC期末试题主观题

1

数字三角阵(15分)

问题描述:按规律根据输入的整数N,打印N行N列的数字三角阵。

输入:输入一个正整数N(≤100)

输出:输出由数字 0~9构成的N行N列的数字三角矩阵:其中第一列有1个数,第二列有2个数,第N列有N个数,从上至下、从左至右依次蛇形排列,每个数字占用2个字符空间;整个数字三角阵,除必要的空格、数字、换行符,无多余符号,最后一行最后一个数字后无其他字符。

样例

输入:

11

输出

#include<stdio.h>int main(){int i,j,n;int a[n+1][n+1];int count;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){count=(j*(j-1)/2+i)%10;if(i<=j) printf(" %d",count);if(i>j) printf(" ");if(j==n) printf("\n");}}return 0;}

2

英文翻译自然数(15分)

问题描述:按常规英文输出1000以内自然数的英文读法。

输入:每个测试输入包含 1 个测试用例,给出正整数n(0<=n <1000)

输出:输出占一行:如果 0<=n<1000 用规定的格式输出n,所有英文单词小写,最后一个单词后无字符;否则输出 ERR

样例1:输入 123 输出:one hundred and twenty-three

样例2:输入 100 输出:one hundred

时间限制:500ms内存限制:32000kb

#include <stdio.h>char data_1[19][10] = { "one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen" };char data_2[8][9] = { "twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety" };//注意英文单词的正确拼写!!!void trans_tens(long b){long c;if (b <= 19){printf("%s", data_1[b - 1]);}else{c = b / 10;printf("%s", data_2[c - 2]);c = b % 10;if (c != 0){printf("-%s", data_1[c - 1]);}}}void trans_hundreds(long a){long b;b = a / 100;if (b != 0){trans_tens(b);printf(" hundred");}b = a % 100;if (b != 0){printf(" and ");trans_tens(b);}}int main(){long N;scanf("%ld", &N);if (N == 0){printf("zero");}else if (N > 0 && N < 100){trans_tens(N);}else if (N >= 100 && N < 1000){trans_hundreds(N);}else{printf("ERR");}return 0;}

3

统计词频(20分)

问题描述:输入6个单词,查找第1个单词在后5个单词中出现的次数。

输入:5个单词

输出:最长的单词及其长度

样例:

输入 Mary Olivia Donald Olivia Linda Olivia

输出 0

时间限制:500ms内存限制:32000kb

# include <stdio.h># include <string.h>//与第六个单词相同的单词总数int ans;//二维字符数组,用来装单词char s[10][10];int main(){ for(int i=1;i<=6;i++) //将单词送入字符数组中scanf("%s",s[i]);char *p;//要进行比较的单词,题主用的指针进行记录p=s[1];for(int i=2;i<=6;i++)/*比较的过程,用到了string.h的strcmp函数,字符串相同时返回值为0*/if(strcmp(p,s[i])==0)ans++; printf("%d",ans); //输出总数return 0;}本次得分/总分:20.00/20.00分

4

生成有序序列(20分)

问题描述:设整数集合 M 定义如下:1∈M;若x∈M , 则2x+1∈M , 3x+1∈M;没有别的整数属于集合 M。编程序按递增顺序生成并输出集合M的无重复的前n(n<50)项。

输入:一个整数n

输出:n个无重复的递增整数,整数之间以一个西文空格间隔,最后一个整数后无多余字符。

样例:输入3 输出1 3 4

时间限制:500ms内存限制:32000kb

#include<stdio.h>#include<math.h>void sortofup(int *a,int n) {int flag=1,r,i;while(flag){flag=0;for(i=0; i<n; i++) if(a[i]>a[i+1]) {r=a[i];a[i]=a[i+1];a[i+1]=r;flag=1;}}}int main(void) {int a[11][1024],b[2048]= {0},i,j,k=0,n;scanf("%d",&n);a[0][0]=1;for(i=0; i<10; i++)for(j=0; j<pow(2,i); j++){a[i+1][2*j]=a[i][j]*2+1;a[i+1][2*j+1]=a[i][j]*3+1;}for(i=0; i<10; i++)for(j=0; j<pow(2,i); j++){b[k]=a[i][j];k++;}sortofup(b,k);printf("%d",b[1]);for(i=2; i<n+1; i++){if(b[i]==b[i+1]) {i++;n++;}printf("% d",b[i]);}return 0;}

5

十六进制大整数加法(20分)

问题描述:编写程序,从键盘读入形如X + Y=的表达式计算结果,其中X和Y都是合法且长度不超过64位的十六进制非负整数,结果中所有字符均大写且无多余的零。

样例1:输入 1234+1234=输出0X2468

样例2:输入 0000+12A= 输出0X12A

样例3:输入 12ff+1= 输出0X1300

时间限制:500ms内存限制:32000kb

#include<stdio.h>#include<string.h>#define N 100 int main(void) {char a[N]= {},b[N]= {};scanf("%[^+]",a);getchar();scanf("%[^=]",b);getchar();int a0[N]= {},b0[N]= {},c0[N]= {0},k,length;for(int i=(int)strlen(a)-1,j=0; a[j]!='\0'; i--,j++) {if(a[j]>='0'&&a[j]<='9') a0[i]=(int)(a[j]-48);if(a[j]>='a'&&a[j]<='f') a0[i]=(int)(a[j]-87);if(a[j]>='A'&&a[j]<='F') a0[i]=(int)(a[j]-55);}for(int i=(int)strlen(b)-1,j=0; b[j]!='\0'; i--,j++) {if(b[j]>='0'&&b[j]<='9') b0[i]=(int)(b[j]-48);if(b[j]>='a'&&b[j]<='f') b0[i]=(int)(b[j]-87);if(b[j]>='A'&&b[j]<='F') b0[i]=(int)(b[j]-55);}for(k=0;k<N; k++){if(a0[k]+b0[k]+c0[k]>15) c0[k+1]++;c0[k]=(a0[k]+b0[k]+c0[k])%16;}printf("0X");for(length=N-1;c0[length]==0;length--);for(int i=length; i>=0; i--)switch(c0[i]) {case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:printf("%d",c0[i]);break;case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;default:break;}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。