现代城市学院程序设计II上机答案
更新时间:2024-05-29 07:37:01 阅读量: 综合文库 文档下载
- 现代程序设计技术推荐度:
- 相关推荐
现代城市学院程序设计II上机答案
7.1
/*程序填空,不要改变与输入输出有关的语句。 输入2个正整数 m 和 n (1<=m<=6, 1<=n<=6),
然后输入矩阵 a(m 行 n 列)中的元素,分别求出各行元素之和,并输出。 输出使用语句:printf(\输入输出示例:括号内为说明 输入: 3 2 (m=3,n=2) 6 3 1 -8 3 12 输出:
sum of row 0 is 9 sum of row 1 is -7 sum of row 2 is 15 */
#include
int i, j, m, n, sum; int a[6][6];
scanf(\ for(i = 0; i < m; i++) for(j = 0; j < n; j++)
scanf(\ for(i = 0; i < m; i++){ sum=0;
for(j = 0; j < n; j++) sum=sum+a[i][j]; printf(\ }
/*---------*/ return 0; }
/*程序填空,不要改变与输入输出有关的语句。 输入两个正整数 m 和 n (m≥1,n≤6),
然后输入该m 行 n 列二维数组a中的元素, 将该二维数组a中的每个元素向右移一列,
最后一列换到第一列,移动后的数组存到另一二维数组b中,按矩阵形式输出b。 输入输出示例:括号内为说明 输入:
2 3 (m=2, n=3) 4 5 6 1 2 3 输出: New array: 6 4 5 3 1 2 */
#include
int a[6][6], b[6][6], i, j, m, n;
scanf(\
for(i = 0; i < m; i++) for(j = 0; j < n; j++)
scanf(\ for(i = 0; i < m; i++) b[i][0]=a[i][n-1]; for(i = 0; i < m; i++) for(j = 0; j < n-1; j++) b[i][j+1]=a[i][j];
/*---------*/
printf(\ for( i = 0; i < m; i++) { for( j = 0; j < n; j++)
printf(\ printf(\ }
return 0; }
/*程序填空,不要改变与输入输出有关的语句。
输入一个正整数 repeat (0 计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。 副对角线为从矩阵的右上角至左下角的连线。 输入输出示例:括号内为说明 输入: 1 (repeat=1) 4 (n=4) 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 1 输出: sum = 35 (2+3+4+5+6+7+8=35) */ #include int i, j, n, sum; int repeat, ri; int a[6][6]; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf(\ sum=0; for(i = 0; i < n-1; i++) for(j = 0; j < n-1; j++) if(i+j!=n-1) sum=sum+a[i][j]; /*---------*/ printf(\ } return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 提示:将乘数、被乘数和乘积放入一个二维数组中,再输出该数组。 输入输出示例:括号内为说明 输入: 1 (repeat=1) 3 (n=3) 输出: * 1 2 3 1 1 2 2 4 3 3 6 9 */ #include int i, j, n; int a[10][10]; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\/*---------*/ for(i = 0; i <= n; i++) for(j = 0; j <= n; j++) a[i][j]=i*j; for(i = 0; i <= n; i++) a[i][0]=i; for(j = 0; j <= n; j++) a[0][j]=j; for(i = 0; i <= n; i++){ for(j = 0; j <= n; j++) if(i == 0 && j == 0) printf(\ else if(i == 0 || j <= i) printf(\ printf(\ } } return 0; } /* 程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 上三角矩阵指主对角线以下的元素都为0的矩阵, 主对角线为从矩阵的左上角至右下角的连线。 输入输出示例:括号内为说明 输入: 2 (repeat=2) 3 (n=3) 1 2 3 0 4 5 0 0 6 2 (n=2) 1 0 -8 2 输出: YES NO */ #include int flag, i, j, n; int a[6][6]; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf(\/*---------*/ flag=1; for(i = 0; i < n; i++) for(j = 0; j < i; j++) if(a[i][j]!=0) flag=0; if(flag != 0) printf(\ else printf(\ } return 0; } /* 程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 2 (repeat=2) 1981 3 1 (1981年3月1日) 2000 3 1 (2000年3月1日) 输出: Days of year: 60 (1981年3月1日是该年的第60天) Days of year: 61 (2000年3月1日是该年的第61天) */ #include { int day, day_year, month, year; int repeat, ri; int day_of_year(int year, int month, int day); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\/*---------*/day_year=day_of_year(year, month, day); printf(\ } return 0; } int day_of_year(int year, int month, int day) { int i,days=0; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; if(year@0==0||year%4==0&&year0!=0) days++; for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 下面是一个特殊的5阶方阵。输入1个正整数n(n≤6),输出如此形式的n阶的方阵(顺时针方向旋进)。 1 2 3 4 5 16 0 0 0 6 15 0 0 0 7 14 0 0 0 8 13 12 11 10 9 输入输出示例:括号内为说明 输入: 5 (n=5) 输出: 1 2 3 4 5 16 0 0 0 6 15 0 0 0 7 14 0 0 0 8 13 12 11 10 9 */ #include int main(void) { int a[10][10], i, j, n, k=0; scanf(\ for(i=0; i /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 就输出其下标, 否则,输出\。鞍点的元素值在该行上最大, 在该列上最小。 输入输出示例:括号内为说明 输入: 2 (repeat=2) 4 (n=4) 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 2 (n=2) 1 7 4 1 输出: a[2][1] = 6 NO */ #include \int main(void) { int flag, i, j, k, row, col, n; int a[6][6]; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) for(j = 0; j < n; j++) scanf(\ row = col =0; for(row = 0; row < n; row++) { for(col = 0; col < n; col++) { flag = 1; for(j = 0; j < n; j++) { if(a[row][j] > a[row][col]) { flag = 0; break; } } for(i = 0; i < n; i++) { if(a[i][col] < a[row][col]) { flag = 0; break; } } if(flag == 1) { break; } } if(flag == 1) { break; } } /*---------*/ if(flag != 0) printf(\ else printf(\ } return 0; } 7.3 /*程序填空,不要改变与输入输出有关的语句。 输入一个以回车结束的字符串(少于80个字符),将它的内容逆序输出。如\的逆序为\。 输入输出示例:括号内为说明 输入: Welcome to you! 输出: !uoy ot emocleW */ #include int i, k, temp; char str[80]; i = 0; while((str[i] = getchar( )) != '\\n') i++; str[i] = 0; k=i-1; i=0; while(i str[i]=str[k]; str[k]=temp; k--; i++; } /*---------*/ for(i = 0; str[i] != 0; i++) putchar(str[i]); return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个以回车结束的字符串(少于80个字符),把字符串中的所有数字字符('0' ~'9')转换为整数,去掉其他字符。例如,字符串“3a56bc”转换为整数后是356。输入输出示例:括号内为说明 输入: free82jeep5 输出: 825 */ #include int i, s; char str[80]; i = 0; while((str[i] = getchar( )) != '\\n') i++; str[i] = '\\0'; s=0; for(i = 0;str[i]!='\\0'; i++) if(str[i] <= '9' && str[i] >= '0') s = s * 10 + (str[i]-'0'); /*---------*/ printf(\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 输入一个字符,再输入一个以回车结束的字符串(少于80个字符), 在字符串中查找该字符,如果找到, 输出该字符在字符串中所对应的最大下标 (下标从0开始);否则输出\。 输入输出示例:括号内为说明 输入: { ch=str[j]; } if(ch!=str[i]) { str[j]=str[i]; str[i]=ch; } } } for(i=0;str[i]!='\\0';i++) { for(j=k=i+1;str[j]!='\\0';j++) if(str[j]!=str[i]) str[k++]=str[j]; str[k]='\\0'; } /*---------*/ for(i = 0; str[i] != '\\0'; i++) putchar(str[i]); putchar('\\n'); return 0; } 8.1 /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 输入两个整型变量x和y,并通过指针运算找出两个数中的最大值,输出到屏幕上。 输入输出示例:括号内为说明 输入: 3 5 ( x=3, y=5) 输出: max = 5 */ #include if(*px>*py) *pmax=*px; else *pmax=*py; /*---------*/ printf(\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入两个正整数 n 和 m (1 将这些数排成一行,向右循环移动 m 个位置(从右边移出的数再从左边移入), 最后输出移动后的n个整数。 要求定义并调用函数 mov(x,n,m) 实现上述循环移动的功能, 函数形参x的类型是整型指针,形参n和m的类型是int,函数的类型是void。 输入输出示例:括号内为说明 输入: 5 3 (n=5,m=3) 1 2 3 4 5 (5个整数) 输出: After moved: 3 4 5 1 2 */ #include void mov(int *x, int n, int m); int main(void) { int i, m, n; int a[80]; scanf(\ for(i = 0; i < n; i++) scanf(\ mov(a, n, m); /*---------*/ printf(\ for(i = 0; i < n; i++) printf(\ printf(\ return 0; } void mov(int *x, int n, int m) { int i,item,j; for(i=0;i { item=x[n-1]; for(j=n-1;j>=0;j--) x[j+1]=x[j]; x[0]=item; } } /*程序填空,不要改变与输入输出有关的语句。 输入两个实数 a 和 b,要求定义并调用函数 sum_diff(float op1,float op2,float *psum,float *pdiff) 实现计算a、b两数的和与差(结果保留两位小数),其中op1和op2是输入的两个实数,*psum和*pdiff 是计算得出的和与差,且该函数的类型是void。自定义main函数,并在其中调用sum_diff函数。 输入输出示例:括号内为说明 输入: 3 (repeat=3) 4 6 -2 -4 0.75 0.25 输出: The sum is 10.00 The diff is -2.00 The sum is -6.00 The diff is 2.00 The sum is 1.00 The diff is 0.50 */ #include void sum_diff(float op1,float op2,float *psum,float *pdiff); int main(void) { float a,b,sum,diff; int ri,repeat; scanf(\ for(ri = 1; ri <=repeat; ri++){ scanf(\ sum_diff(a,b,&sum,&diff); /*---------*/ printf(\ } return 0; } void sum_diff(float op1,float op2,float *psum,float *pdiff) { *psum=op1+op2; *pdiff=op1-op2; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 要求定义并调用函数 sort(a,n),它的功能是采用选择排序算法,将数组 a 的前 n 个元素按从小到大的顺序排序,函数形参 a 的类型是整型指针,形参n的类型是int,函数的类型是void。 输入输出示例:括号内为说明 输入 3 (repeat=3) 4 (n=4) 5 1 7 6 3 (n=3) 1 2 3 5 (n=5) 5 4 3 2 1 输出 After sorted the array is: 1 5 6 7 After sorted the array is: 1 2 3 After sorted the array is: 1 2 3 4 5 */ #include int i, n; int repeat, ri; int a[10]; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) scanf(\ sort(a,n); /*---------*/ printf(\ for(i = 0; i < n; i++) printf(\ printf(\ } return 0; } void sort(int a[],int n) { int i,k,index,temp; for(k=0;k /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 要求定义并调用函数search(list, n, x),它的功能是在数组list中查找元素x,若找到则返回相应元素的最小下标,否则返回-1,函数形参 list 的类型是整型指针,形参n和x的类型是int,函数的类型是void。 输入输出示例:括号内为说明 输入 2 (repeat=2) 3 (n=3) 1 2 -6 2 (x=2) 5 (n=5) 1 2 2 5 4 0 (x=0) 输出 index = 1 Not found */ #include int i, index, n, res, x; int repeat, ri; int a[10]; int search(int list[], int n, int x); scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ for(i = 0; i < n; i++) scanf(\ scanf(\/*---------*/ res=search(a,n, x); if(res != -1) printf(\ else printf(\ } return 0; } int search(int list[], int n, int x) { int index; int i; for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 n (1 下一个人从 1 开始重新报数,报到3的人退出圈子。 如此循环,直到留下最后一个人。请问留下来的人的编号。 提示:将每个人的编号存入数组,从第一个人开始报数, 依次将报到3的人的编号清除为0,重复这样的操作直至只剩下一个不为0的数,该数就是最后一个人的编号。 输出使用语句:printf(\输入输出示例:括号内为说明 输入: 5 (n个人报数,n=5) 输出: Last No is: 4 (最后一个人的编号是4) */ #include int count, i, n, no; int num[50]; int *p; scanf(\ for(i = 0; i < n; i++) num[i] = i + 1; p = num; i=0; no = 0; count = n; while(count>1) { if(num[i]!=0) no++; if(no==3) { num[i]=0; count--; no=0; } i=i++ ; i=i%n; } /*---------*/ p = num; while(*p == 0) p++; printf(\ return 0; } 8.2 /*程序填空,不要改变与输入输出有关的语句。 输入5个字符串,输出其中最小的字符串。 输入输出示例:括号内为说明 输入: Li Wang Zha Jin Xian 输出: Min is: Jin */ #include char min[80], str[80]; int i; scanf(\ strcpy(min,str); for(i=0;i<4;i++) { scanf(\ if(strcmp(min,str)==1) strcpy(min,str); } /*---------*/ printf(\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 编写一个程序,在主函数中输入两个字符串s和t,调用函数strc完成字符串的连接。 函数strc的作用是将字串s连接到字串t的尾部。 输入输出示例: 输入: Birthday Happy 输出: HappyBirthday */ #include void strc(char *s, char *t); int main(void) { char s[80],t[80]; gets(s); gets(t); strc(s,t); puts(t); return 0; } void strc(char *s, char *t) { while(*t!='\\0') *t++; while(*s!='\\0') *t++=*s++; *t='\\0'; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 2 (repeat=2) li wang zhang jin xian red blue green yellow purple 输出: The longest is: zhang The longest is: yellow */ #include char sx[80], longest[80]; int i; int repeat, ri; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ strcpy(longest,sx); for(i=0;i<4;i++) { scanf(\ if(strlen(longest) } printf(\ } /*---------*/ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,再输出字符串 s。 要求定义并调用函数 strmcpy(s,t,m), 它的功能是将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,函数形参s和t的类型是字符指针,形参m的类型是int,函数类型是void。 输入输出示例:括号内为说明 输入: 3 (repeat=3) happy new year 7 happy 1 new 4 输出: Output is: new year (从\new year\第7个字符开始组成的新字符串为\year\) Output is: happy (从\第1个字符开始组成的新字符串为\) error input (\的长度小于4) */ #include char s[80], t[80]; int m; int repeat, ri; void strmcpy(char *s,char *t, int m); scanf(\ getchar(); for(ri = 1; ri <= repeat; ri++){ gets(t); scanf(\ getchar(); if(strlen(t) < m) printf(\ else{ /*---------*/strmcpy(s,t,m); printf(\ } } return 0; } void strmcpy(char *s,char *t, int m) { int i; for(i=1;i /*程序填空,不要改变与输入输出有关的语句。 输入一行字符(不超过80个),统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。 输入输出示例: 输入: bFaE3+8 =1R 输出: 大写字母数为: 3 小写字母数为: 2 空格为: 1 数字为: 3 其他字符为: 2 */ #include char s[80]; char *p; int blank, digit, lower, other, upper; gets(s); upper = lower = blank = digit = other = 0; p=s; while(*p!='\\0') { if(*p>='A'&&*p<='Z') upper++; else if(*p>='a'&&*p<='z') lower++; else if(*p==' ') blank++; else if(*p>='0'&&*p<='9') digit++; else other++; *p++; } /*---------*/ printf(\大写字母数为: %d\\n小写字母数为: %d\\n空格为: %d\\n数字为: %d\\n其他字符为: %d\\n\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除。 要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。 输入输出示例:括号内为说明 输入 3 (repeat=3) happy new year (字符串\a (待删除的字符'a') bee (字符串\e (待删除的字符'e') 111211 (字符串\1 (待删除的字符'1') 输出 After deleted, the string is: hppy new yer (字符串\中的字符'a'都被删除) After deleted, the string is: b (字符串\中的字符'e'都被删除) After deleted, the string is: 2 (字符串\中的字符'1'都被删除) */ #include char c; char str[80]; int repeat, ri; void delchar(char *str, char c); scanf(\ getchar(); for(ri = 1; ri <= repeat; ri++){ gets(str); scanf(\ getchar(); /*---------*/ delchar(str, c); printf(\ } return 0; } void delchar(char *str, char c) { int i=0,j; while(str[i]!='\\0') { if(str[i]!=c) i++; else { for(j=i;str[j]!='\\0';j++) str[j]=str[j+1]; str[j]='\\0'; } } } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 输入一个字符串(长度不超过80),判断该字符串是否为“回文”。“回文”是指顺读和倒读都一样的字符串,如“XYZYX”和“xyzzyx”。 要求定义并调用函数 mirror(p)判断字符串 p 是否为“回文”,如果 p 是回文字符串,返回1,否则,返回0,函数形参 p 的类型是字符指针,函数类型是 int。 输入输出示例:括号内为说明 输入: 2 (repeat=2) abcddcba abcddcb 输出: YES NO */ #include char s[80]; int repeat, ri; int mirror(char *p); scanf(\ getchar(); for(ri = 1; ri <= repeat; ri++){ gets(s); if(mirror(s) != 0) printf(\ else printf(\ } return 0; } int mirror(char *p) { int n=0,i; while(p[n]!='\\0') n++; n--; for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数n(3≤n≤10),再输入n个雇员的信息,包括姓名、基本工资、浮动工资和支出 ,输出每人的姓名和实发工资,实发工资=基本工资+浮动工资-支出。 输入输出示例:括号内为说明 输入: 3 (n=3) zhao 240 400 75 qian 360 120 50 zhou 560 150 80 输出: zhao 实发数:565.00 qian 实发数:430.00 zhou 实发数:630.00 */ #include struct emp{ char name[10]; float jbgz; float fdgz; float zc; }; struct emp s[10]; int i, n; scanf(\/*---------*/ for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 n(3 输出总分最高学生的姓名和总分。 输入输出示例:括号内为说明 输入: 5 (n=5) 1 黄岚 78 83 75 2 王海 76 80 77 3 沈强 87 83 76 4 张枫 92 88 78 5 章盟 80 82 75 输出: 总分最高的学生是: 张枫,258分 */ #include int i, j, k, max_index, n; struct student{ int number; char name[20]; int score[3]; int sum; }stu[10]; scanf(\ for(i=0;i /*---------*/ printf(\总分最高的学生是: %s,%d分\\n\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 以h:m:s的格式输出该时间再过 n 秒后的时间值(超过 24 时从 0 时重新开始计时)。 输入输出示例:括号内为说明 输入: 3 (repeat=3) 0:0:1 59 (秒数n=59) 11:59:40 30 (秒数n=30) 23:59:40 30 (秒数n=30) 输出: 0:1:0 (0:0:01加上59秒的新时间) 12:0:10 (11:59:40加上30秒的新时间) 0:0:10 (23:59:40加上30秒的新时间) */ #include { int n; int repeat, ri; struct time{ int hour, minute, second; }time; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\ scanf(\ time.second=time.second+n600; n=n/60; time.minute=time.minute+n`+time.second/60; n/60; time.hour=time.hour+n+time.minute/60; time.second=time.second`; time.minute=time.minute`; time.hour=time.hour$; /*---------*/ printf(\ } return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入整数n(n<10),再输入n个学生的基本信息, 包括序号、姓名和成绩,要求计算并输出他们的平均成绩(保留2位小数)。 输入输出示例:括号内为说明 输入: 3 (n=3) 1 zhang 70 2 wang 80 3 qian 90 输出: 80.00 */ #include int i, n; double average, sum; struct student{ int num; char name[10]; int score; }s[10]; scanf(\ for(i=0;i printf(\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入4个整数a1、a2、b1、b2,分别表示两个复数的实部与虚部,求两个复数之积(a1+a2i)*(b1+b2i),乘积的实部为:a1*b1-a2*b2,虚部为:a1*b2+a2*b1。 输入输出示例:括号内为说明 输入: 3 4 5 6 输出: (3+4i) * (5+6i) = -9 + 38i */ #include struct complex{ int real; int imag; }product, x, y; scanf(\ product.real=x.real*y.real-x.imag*y.imag; product.imag=x.real*y.imag+x.imag*y.real; /*--(a1+a2i)*(b1+b2i),乘积的实部为:a1*b1-a2*b2,虚部为:a1*b2+a2*b1-------*/ printf(\* (%d+%di) = %d + %di\\n\x.real, x.imag, y.real, y.imag, product.real, product.imag); return 0; } /*程序填空,不要改变与输入输出有关的语句。 编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,查找并输出其中定价最高和最低的书的名称和定价。 输入输出示例:括号内为说明 输入: 3 (n=3) C程序设计 21.5 VB程序设计 18.5 Delphi程序设计 25.0 输出: 价格最高的书: Delphi程序设计,价格: 25.0 价格最低的书: VB程序设计,价格: 18.5 */ #include int i, max_index, min_index, n; double x; struct book{ char name[50]; double price; }book[10]; scanf(\ getchar(); for(i = 0; i < n; i++){ scanf(\ scanf(\ getchar(); book[i].price = x; } max_index= min_index=0; for(i=1;i /*---------*/ printf(\价格最高的书: %s,价格: %.1f\\n\ printf(\价格最低的书: %s,价格: %.1f\\n\ return 0; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0 编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。 要求定义并调用函数 day_of_year(p) 计算某日是该年的第几天, 函数形参p的类型是结构指针,指向表示日期的结构变量,函数类型是int,注意区分闰年。 输入输出示例:括号内为说明 输入: 2 (repeat=2) 2006 3 5 2000 3 5 输出: 64 (2006年3月5日是该年的第64天) 65 (2000年3月5日是该年的第65天) */ #include int day_of_year(struct date *p); int main(void) { int yearday; int repeat, ri; struct date date; scanf(\ for(ri = 1; ri <= repeat; ri++){ scanf(\/*---------*/yearday=day_of_year(&date); printf(\ } return 0; } int day_of_year(struct date *p) { int i,result=0; int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; //int month2[12]={31,29,31,30,31,30,31,31,30,31,30,31}; for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 通讯录的结构记录包括: 姓名、生日、电话号码, 其中生日又包括三项:年、月、日。 定义一个嵌套的结构类型, 输入n(n<10)个联系人的信息, 再按他们的年龄从大到小的顺序依次输出其信息。 输入输出示例:括号内为说明 输入: 3 (n=3) zhang 1985 04 03 13912345678 wang 1982 10 20 0571-88018448 qian 1984 06 19 13609876543 输出: wang 1982/10/20 0571-88018448 qian 1984/6/19 13609876543 zhang 1985/4/3 13912345678 */ #include struct friends_list{ char name[10]; struct date birthday; char phone[15]; }; int main(void) { int i, n; struct friends_list friends[10]; void sort(struct friends_list s[], int n); scanf(\ for(i=0; i void sort(struct friends_list s[], int n) { int i,j,index; struct friends_list b; /*for(i=0;i if((s[index].birthday.y==s[j].birthday.y)&&(s[index].birthday.m>s[j].birthday.m)) index=j; else if((s[index].birthday.y==s[j].birthday.y)&&(s[index].birthday.m==s[j].birthday.m)&&(s[index].birthday.d>s[j].birthday.d)) index=j; } b=s[i]; s[i]=s[index]; s[index]=b; } /* if(index==n-1) b[i]=s[i-1]; else b[i]=s[i]; for(i=0;i /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 输入一个整数n (n>=0)和一个双精度浮点数x,输出函数P(n,x)的值(保留2位小数)。 [1 (n=0) P(n, x) = [x (n=1) [((2n-1)*P(n-1,x)-(n-1)*P(n-2,x))/n (n>1) 例:括号内是说明 输入 3 (repeat=3) 0 0.9 (n=0,x=0.9) 1 -9.8 (n=1,x=-9.8) 10 1.7 (n=10,x=1.7) 输出 P(0, 0.90)=1.00 P(1, -9.80)=-9.80 P(10, 1.70)=3.05 */ #include double P(int n, double x); int main(void) { int repeat, ri; int n; double x, result; scanf(\ for(ri = 1; ri <= repeat; ri++) { scanf(\ result = P(n, x); printf(\ } return 0; } double P(int n, double x) { if(n==0) { return 1; } if(n==1) { return x; } if(n>1) { return ((2*n-1)*P(n-1,x)-(n-1)*P(n-2,x))/n; } } /*程序填空,不要改变与输入输出有关的语句。 编写一个函数,利用参数传入一个3位数number, 找出101~number之间所有满足下列两个条件的数: 它是完全平方数,又有两位数字相同, 如144、676等,函数返回找出这样的数据的个数。请同时编写主函数。 例:(括号内为说明) 输入 3 (repeat=3) 150 500 999 输出 count=2 count=6 count=8 */ #include return 0; } int search(int n) { int i,j; int n1,n2,n3; int count = 0; // 找完全平方数 for(i=101;i<=n;i++) { for(j=10; j n1 = i/100; // 百位 n2 = i/10;// 十位 n3 = i; // 个位 if(n1==n2 && n2==n3 && n3==n1){} else if(n1!=n2 && n2!=n3 && n3!=n1) {} else { count++; } break; } } } return count; } /*程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0 输入一个整数n(n>0且n<=10),求1!+2!+3!+...+n!。定义并调用函数fact(n)计算n!,函数类型是double。 例:括号内是说明 输入 3 (repeat=3) 1 10 5 输出 1 4037913 153 */ #include
正在阅读:
现代城市学院程序设计II上机答案05-29
2022年四川高考394分能报什么大学 394分能上哪些院校03-29
人大主任座谈会2011.8.25(正式)05-04
山川岁月长读后感10篇12-12
江苏丰县赵庄镇市场调研报告10-11
优秀社区书记发言稿08-08
初一下册数学第七章测试题:平面直角坐标系03-26
军训论文11-08
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 程序设计
- 答案
- 学院
- 现代
- 城市
- 2018年小学六年级语文下册(第十二册)全册教案人教版
- 绝望主妇第一季第十三集台词 Your fault
- 分析化学试卷
- 安徽省合肥一中2013-2014学年高一英语上学期第一次月考试题新人
- 湖北省畜牧服务行业企业名录2018版1205家 - 图文
- 初中生综合素质评价存在问题应对策略研究
- 环境应急预案文档参考
- 2010江苏省驾校考试科目一C2理论考试试题及答案
- 航空航天院所大全
- 初二基础知识训练(三)
- 当前大学生就业形势分析及应对策略.
- 2014年班组建设大纲(集团)
- 郑大远程教育《模拟电子》第06章在线测试
- 2016学年白云区景泰中学七年级第一学期数学期中检测(问卷)
- 2018年中考数学专题《函数基础知识》复习试卷(有答案)
- 青年干部培训班学习小结心得
- 浅谈课改中学生创新能力的培养
- 九年级外研小学起点09年12月月考题 - 图文
- 日产80吨浓缩苹果汁的工厂设计
- 苏教版五年级数学上册1-4单元易错题