收藏 分销(赏)

80011程序填空.doc

上传人:仙人****88 文档编号:12024663 上传时间:2025-08-29 格式:DOC 页数:23 大小:107.50KB 下载积分:10 金币
下载 相关 举报
80011程序填空.doc_第1页
第1页 / 共23页
80011程序填空.doc_第2页
第2页 / 共23页


点击查看更多>>
资源描述
80011程序填空,不要改变与输入输出有关的语句。 输入两个正整数 n 和 m (1<m<n<=10),再输入 n 个整数,将这些数排成一行,向右循环移动 m 个位置(从右边移出的数再从左边移入),最后输出移动后的n个整数。 要求定义并调用函数 mov(x,n,m) 实现上述循环移动的功能,函数形参x的类型是整型指针,形参n和m的类型是int,函数的类型是void。 输入输出示例:括号内为说明 输入: 5 3 (n=5,m=3) 1 2 3 4 5 (5个整数) 输出: After move: 3 4 5 1 2 #include <stdio.h> void mov(int *x, int n, int m); int main(void) { int i, m, n; int a[80]; scanf("%d%d", &n, &m); for(i = 0; i < n; i++) scanf("%d", &a[i]); /*---------*/ mov(a,n,m); printf("After move: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } /*---------*/ void mov(int *x, int n, int m) { int i,j,k; for( i=0;i<m;i++) { k=x[n-1]; for(j=n-1 ; j>0; j--) x[j]=x[j-1]; x[0]=k; } } 80012程序填空,不要改变与输入输出有关的语句。 输入一个正整数repeat (0<repeat<10),做repeat次下列运算: 输入一个正整数 n (1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应元素的最小下标,否则输出"Not found"。 要求定义并调用函数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 <stdio.h> int main(void) { int i, index, n, res, x; int repeat, ri; int a[10]; int search(int list[], int n, int x); scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); scanf("%d", &x); /*---------*/ res=search(a,n,x); if(res != -1) printf("index = %d\n", res); else printf("Not found\n"); } } /*---------*/ int search(int list[], int n, int x) { int i; for(i=0; i<n; i++) if(list[i]==x) return i; return -1; } 80013程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),再输入 n 个整数存入数组 a 中,用选择法将数组 a 中的元素按升序排列,最后输出排序后的数组元素。 要求定义并调用函数 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: 1 5 6 7 After sorted: 1 2 3 After sorted: 1 2 3 4 5 #include <stdio.h> void sort(int a[],int n); int main(void) { int i, n; int repeat, ri; int a[10]; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); for(i = 0; i < n; i++) scanf("%d", &a[i]); /*---------*/ sort(a,n); printf("After sorted: "); for(i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); } } /*---------*/ void sort(int a[],int n) { int i,k,index,temp; for(i=0;i<n-1;i++) { index=i; for(k=i+1;k<n;k++) if(a[k]<a[index])ex]=temp; } } 80021程序填空,不要改变与输入输出有关的语句。 输入5个字符串,输出其中最大的字符串。 输入输出示例:括号内为说明 输入: peach pear melon orange berry 输出: Max is: pear #include <stdio.h> #include <string.h> int main(void) { char str[80], max[80]; int i; scanf("%s", str); /*---------*/ strcpy(max,str); for(i = 1; i < 5; i++){ scanf("%s", str); if(strcmp(str,max)>0) strcpy(max,str); } printf("Max is: %s\n", max); } 80022程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个正整数 n (1<n<=10),然后输入 n 个字符串,输出其中最长的字符串,如果字符串的长度相同,则输出先输入的字符串。 输入输出示例:括号内为说明 输入: 3 (repeat=3) 5 (n=5) melon peach pear strawberry orange 3 (n=3) pear berry orange 4 (n=4) melon peach pear apple 输出: The longest is: strawberry The longest is: orange The longest is: melon #include <stdio.h> #include <string.h> int main(void) { char sx[80], longest[80]; int i, n; int repeat, ri; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d", &n); scanf("%s", sx); /*---------*/ strcpy(longest ,sx); for(i = 1; i < n; i++){ scanf("%s", sx); if(strlen(sx)>strlen(longest)) strcpy(longest ,sx); } printf("The longest is: %s\n", longest); } 80023程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除。 要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。 输入输出示例:括号内为说明 输入 3 (repeat=3) happy new year (字符串"happy new year") a (待删除的字符'a') bee (字符串"bee") e (待删除的字符'e') 111211 (字符串"111211") 1 (待删除的字符'1') 输出 result: hppy new yer (字符串"happy new year"中的字符'a'都被删除) result: b (字符串"bee"中的字符'e'都被删除) result: 2 (字符串"111211"中的字符'1'都被删除) #include<stdio.h> void main() { char c; char str[80]; int repeat, ri; void delchar(char *str, char c); scanf("%d", &repeat); getchar(); for(ri = 1; ri <= repeat; ri++){ gets(str); scanf("%c", &c); getchar(); /*---------*/ delchar(str,c); printf("result: "); puts(str); } } /*---------*/ void delchar(char *str, char c) { char *p,*q; p=str; while(*p!='\0') { if(*p==c) { q=p; while(*q!='\0') { *q=*(q+1); q++;} *q='\0'; } if(*p!=c) p++; } } 80024程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个字符串 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 输出: new year (从"happy new year"第7个字符开始组成的新字符串为"new year") happy (从"happy"第1个字符开始组成的新字符串为"happy") error input ("new"的长度小于4) #include<stdio.h> #include<string.h> void main() { char s[80], t[80]; int m; int repeat, ri; void strmcpy(char *s,char *t, int m); scanf("%d", &repeat); getchar(); for(ri = 1; ri <= repeat; ri++){ gets(t); scanf("%d", &m); getchar(); if(strlen(t) < m) printf("error input"); else{ strmcpy(s,t,m); /*---------*/ puts(s); } } } /*---------*/ void strmcpy(char *s, char *t, int m) { int i; for(i=m-1;t[i]!='\0';i++) s[i-m+1]=t[i]; s[i-m+1]='\0'; } 80025程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个字符串(长度不超过80),判断该字符串是否为“回文”。“回文”是指顺读和倒读都一样的字符串,如“XYZYX”和“xyzzyx”。 要求定义并调用函数 mirror(p)判断字符串 p 是否为“回文”,如果 p 是回文字符串,返回1,否则,返回0,函数形参 p 的类型是字符指针,函数类型是 int。 输入输出示例:括号内为说明 输入: 2 (repeat=2) abcddcba abcddcb 输出: YES NO #include <stdio.h> void main() { char s[80]; int repeat, ri; int mirror(char *p); scanf("%d", &repeat); getchar(); for(ri = 1; ri <= repeat; ri++){ gets(s); if(mirror(s) != 0) printf("YES\n"); else printf("NO\n"); } } /*---------*/ int mirror(char *p) { int i,length,k; for(i = 0; p[i]!=’\0’; i++); length=i; for(k = 0; k < length/2; k++) if(p[k]!= p[length-1-k]) return 0; return 1; } 80026程序填空,不要改变与输入输出有关的语句。 输入一行字符(不超过80个),统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。 输入输出示例: 输入: bFaE3+8 =1R 输出: upper: 3 lower: 2 blank: 1 digit: 3 other: 2 #include<stdio.h> void main() { char s[80]; char *p; int blank, digit, lower, other, upper; gets(s); upper = lower = blank = digit = other = 0; /*---------*/ for(p=s;*p!=’\0’;p++){ if(*p >='A' && *p <='Z') upper++; else if(*p >='a' && *p <='z') lowerr++; else if(*p >='0' && *p <='9') digit++; else if(*p ==' ') blank++; else other++; } printf("upper: %d lower: %d blank: %d digit: %d other: %d\n", upper, lower, blank, digit, other); } 90001程序填空,不要改变与输入输出有关的语句。 输入一个正整数n(3≤n≤10),再输入n个雇员的信息,包括姓名、基本工资、浮动工资和支出,输出每人的姓名和实发工资,实发工资=基本工资+浮动工资-支出。 输入输出示例:括号内为说明 输入: 3 (n=3) zhao 240 400 75 qian 360 120 50 zhou 560 0 80 输出: zhao 实发工资: 565.00 qian 实发工资: 430.00 zhou 实发工资: 480.00 #include <stdio.h> int main (void) { int i, n; double x; struct emp{ char name[10]; double jbg; double fdg; double zc; } s[10]; scanf("%d", &n); /*---------*/ for (i = 0; i < n; i++) scanf("%s%lf%lf%lf", s[i].name,&s[i].jbg,&s[i].fdg,&s[i].zc); for (i = 0; i < n; i++) printf ("%5s 实发工资:%7.2f\n", s[i].name, s[i].jbg + s[i].fdg - s[i].zc); } 90002程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个时间数值,再输入秒数 n,输出该时间再过 n 秒后的时间值,时间的表示形式为时:分:秒,超过 24 时从 0 时重新开始计时。 输入输出示例:括号内为说明 输入: 3 (repeat=3) 0:0:1 59 (秒数n=59) 11:59:40 30 (秒数n=30) 23:59:40 301 (秒数n=301) 输出: time: 0:1:0 (0:0:01加上59秒的新时间) time: 12:0:10 (11:59:40加上30秒的新时间) time: 0:4:41 (23:59:40加上301秒的新时间) #include <stdio.h> int main(void) { int n; int repeat, ri; struct time{ int hour, minute, second; }time; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d:%d:%d", &time.hour, &time.minute, &time.second); scanf("%d",&n); /*---------*/ time. second +=n; if(time.second>=60){ time. minute+= time.second/60; time.second= time.second%60; } if(time. minute >=60){ time. hour+= time. minute /60; time. minute = time. minute %60; } if(time. hour >=24) time. hour = time. hour %24; printf("time: %d:%d:%d\n", time.hour, time.minute, time.second); } } 90003程序填空,不要改变与输入输出有关的语句。 输入整数n(n<10),再输入n个学生的基本信息,包括序号、姓名和成绩,要求计算并输出他们的平均成绩(保留2位小数)。 输入输出示例:括号内为说明 输入: 3 (n=3) 1 zhang 70 2 wang 80 3 qian 90 输出: average: 80.00 #include <stdio.h> int main(void) { int i, n; double average, sum; struct student{ int num; char name[10]; int score; }s[10]; scanf("%d", &n); /*---------*/ sum=0; for(i = 0; i < n; i++){ scanf("%d%s%d", &s[i].num, s[i].name, &s[i].score); sum = sum + s[i].score; } average=1.0*sum/n; printf("average: %.2f\n", average); } 90004程序填空,不要改变与输入输出有关的语句。 输入4个整数a1,b1,a2,b2,分别表示两个复数的实部与虚部,求两个复数之积(a1+b1i)*(a2+b2i),乘积的实部为:a1*a2-b1*b2,虚部为:a1*b2+a2*b1。 输入输出示例:括号内为说明 输入: 3 4 5 6 输出: (3+4i) * (5+6i) = -9 + 38i #include <stdio.h> int main(void) { struct complex{ int real; int imag; }product, x, y; scanf("%d%d%d%d", &x.real, &x.imag, &y.real, &y.imag); /*---------*/ product.real = x. real * y. real -x. imag* y. imag ; product.imag= x. real * y. imag +x. imag *y. real; printf("(%d+%di) * (%d+%di) = %d + %di\n", x.real, x.imag, y.real, y.imag, product.real, product.imag); } 90005程序填空,不要改变与输入输出有关的语句。 编写程序,从键盘输入 n (n<10)本书的名称和定价并存入结构数组中,查找并输出其中定价最高和最低的书的名称和定价。 输入输出示例:括号内为说明 输入: 3 (n=3) Programming in C 21.5 Programming in VB 18.5 Programming in Delphi 25.0 输出: highest price: 25.0, Programming in Delphi lowest price: 18.5, Programming in VB #include <stdio.h> int main (void) { int i, max_index, min_index, n; double x; struct book{ char name[50]; double price; }book[10]; scanf("%d", &n); getchar(); for(i = 0; i < n; i++){ gets(book[i].name); scanf("%lf", &x); getchar(); book[i].price = x; } /*---------*/ max_index=min_index =0; for ( i=1; i<n; i++){ if (book[min_index].price >book[i].price) min_index = i; if(book[max_index ].price<book[i].price) max_index = i; } printf("highest price: %.1f, %s\n", book[max_index].price, book[max_index].name); printf("lowest price: %.1f, %s\n", book[min_index].price, book[min_index].name); } 90006程序填空,不要改变与输入输出有关的语句。 输入n(n<10)个朋友的信息,包括姓名、生日、电话号码,按照年龄从大到小的顺序依次输出通讯录。 输入输出示例:括号内为说明 输入: 3 (n=3) zhang 19850403 13912345678 wang 19821020 0571-88018448 qian 19840619 13609876543 输出: wang 19821020 0571-88018448 qian 19840619 13609876543 zhang 19850403 13912345678 #include <stdio.h> int main (void) { int i, index, j, n; struct address_list{ char name[20]; long birthday; char phone[20]; }temp, friends[10]; scanf("%d", &n); for(i = 0; i < n; i++) scanf("%s%ld%s", friends[i].name, &friends[i].birthday, friends[i].phone); /*---------*/ for(i= 0;i< n-1;i++) { index=i; for(j=i+1;j<n;j++) if(friends [j]. birthday < friends [index]. birthday) index=j; temp= friends [index]; friends [index]= friends [i]; friends [i]=temp; } for(i = 0; i < n; i++) printf("%s %ld %s\n", friends[i].name, friends[i].birthday, friends[i].phone); } 90007程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。 要求定义并调用函数 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 <stdio.h> struct date{ int year; int month; int day; }; int day_of_year(struct date *p); int main(void) { int yearday; int repeat, ri; struct date date; scanf("%d", &repeat); for(ri = 1; ri <= repeat; ri++){ scanf("%d%d%d", &date.year, &date.month, &date.day); /*---------*/ yearday= day_of_year(&date); printf("%d\n", yearday); } } /*---------*/ int day_of_year(struct date *p) { int k, leap; int tab[2][13]={ {0, 31, 28, 31, 30,31,30,31,31,30,31, 30,31}, {0, 31, 29, 31, 30,31,30,31,31,30,31, 30,31} }; leap = (p->year%4==0&&p->year%100!=0) ||p-> year %400==0; for(k=1; k<p->month; k++) p->day = p->day + tab[leap][k]; return p->day; } 90008程序填空,不要改变与输入输出有关的语句。 输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算: 输入一个时间数值,再输入秒数 n,输出该时间再过 n 秒后的时间值,时间的表示形式为时:分:秒,超过 24 时从 0 时重新开始计时。 要求定义并调用函数 timecal(p, n)实现时间换算,函数形参 p 的类型是结构指针,指向表示时间的结构变量,形参n 的类型是整型,表示秒数,函数类型是 void。 输入输出示例:括号内为说明 输入: 3 (repeat=3) 0:0:1 59 (秒数n=59) 11:59:40 30 (秒数n=30) 23:59:40 301 (秒数n=301) 输出: time: 0:1:0 (0:0:01加上59秒的新时间) time: 12:0:10 (11:59:40加上30秒的新时间) time: 0:4:41 (23:59:40加上301秒的新时间) #include <stdio.h> struct time{ int hour, minute, second; }; void timecal(struct time *p, int n); int main(void) { int n; int repeat, ri; struct time
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服