C语言程序设计基础上机考试一题目及参考答案.doc

上传人:wux****ua 文档编号:9125707 上传时间:2020-04-03 格式:DOC 页数:17 大小:93.01KB
返回 下载 相关 举报
C语言程序设计基础上机考试一题目及参考答案.doc_第1页
第1页 / 共17页
C语言程序设计基础上机考试一题目及参考答案.doc_第2页
第2页 / 共17页
C语言程序设计基础上机考试一题目及参考答案.doc_第3页
第3页 / 共17页
点击查看更多>>
资源描述
1输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。2输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。3找出一个大于给定整数m且紧随m的素数。4统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。5计算并输出k以内最大的10个能被13或17整除的自然数之和。6读入一行英文文本, 将其中每个单词的最后一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。7求A、B两个整数数组数据的交集,并输出交集的数据。8输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。9将字符串s所有的子串t用“copy”替换,并输出替换后的字符串。10判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。1. 输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。2. 删除字符串中的数字字符3. 计算并输出high以内最大的10个素数之和。4. A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。5. 计算字符串s中含有字符串t的数目, 并输出。6. 编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。7. 在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。8. 判断一个整数是否是回文数。所谓的回文数是指高位到地位与从低位到高位读取该数,得到的数是相同的数据。例如:1221,121是回文数。9. 找出200以内所有的完数,并输出其因子。一个数若恰好等于它的各因子之和,称其为完数。例如:6=1+2+3,其中1、2、3为因子,6是因子和。10. 统计在字符串str中26个小写英文字母各自出现的次数。C程序设计基础上机考试一基本要求:1)所有程序不能使用外部变量2)子函数中不能出现数据的输入输出语句3)每个程序至少包含两个函数定义(包括主函数)1输入一串字符(可能包含空格),计算输入的字符串中整数的个数并输出。#include stdio.h#include string.hvoid main()char a100;int count;int test1(char a);printf(输入字符串:n);gets(a);count=test1(a);printf(整数个数为:%dn,count);int test1(char a)int i,j,n=0;for (i=0;ai!=0;i+)if (ai=0&ai=0&aj=9) break; n+; i=j;return(n);2输入一个字符串,对字符串相同的字符只保留一个(首次出现的字符)。#includestdio.h#define N 100void test2(char ss1N)int i,j,k;for(i=0;ss1i!=0;i+)for(j=i+1;ss1j!=0;j+)if(ss1j=ss1i)void test2(char ss1N)int i,j,k,n;n=strlen(ss1);for(i=0;in;i+)for(j=i+1;jn;j+)if(ss1j=ss1i) for(k=j;k1) if(m%i !=0) i-; else break; if (i=1) t=1; /*说明m已除遍m-1至2,都除不尽,所以m是素数)*/return(m);4统计老年人各年龄段(每10岁为一个年龄段)的人数并存到b数组中,n个人员的年龄放在a数组中。#include stdio.h# define N 10# define M 10void test4(int aN,int bM)int i,k;for(i=0;i60and 160);for(i=0;iN;i+)scanf(%d,&ai);if (ai160) printf(input error);i-;test4(a,b);printf(n);for(i=0;iM;i+)printf(%d=age%d:%dn ,(i+6)*10,(i+6+1)*10,bi);5计算并输出k以内最大的10个能被13或17整除的自然数之和。#includestdio.hint test5(int k) int count=0,sum=0; while(count=a &ai=z&(ai+1= |ai+1=0) ai=ai-32;void main()char aM;printf(please input the textn);gets(a);test6(a);printf(%s,a);7求A、B两个整数数组数据的交集,并输出交集的数据。/*交集就是二个数组中相同的元素。算法是数组A每取一个元素,与数组B的所有元素相比,若相等,则将该元素存入第三个数组*/#include stdio.hvoid main()int a100,b100,c100;int text(int a,int b,int c,int n1,int n2);/*函数声明*/int n1,n2,n3,i;printf(输入A组的个数:);scanf(%d,&n1);printf(输入A组的元素:);for (i=0;in1;i+) scanf(%d,&ai);printf(输入B组的个数:);scanf(%d,&n2);printf(输入B组的元素:);for (i=0;in2;i+) scanf(%d,&bi);n3=text(a,b,c,n1,n2); /*调用函数*/printf(交集:);for (i=0;in3;i+)printf(%d ,ci);putchar(n);int text(int a,int b,int c,int n1,int n2)int i,j,n=0;for (i=0;in1;i+) for (j=0;jn2;j+)if (ai=bj) cn+=ai;return(n);8输入若干个整数,且每个数均在1000至9999之间,按照每个数的后三位进行升序排序,若后三位相等,则按照原数据升序排序。#include stdio.hvoid main()int a80,i,j,k,n;void sort(int a,int n);printf(请输入数字的个数n);scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);test8(a,n);for (i=0;in;i+)printf(%d ,ai);void test8(int a,int n)int i,j,t;for (i=0;in-1;i+)for (j=i+1;jaj%1000) t=ai;ai=aj;aj=t;else if (ai%1000=aj%1000)if (aiaj) t=ai;ai=aj;aj=t;9将字符串s所有的子串t用“copy”替换,并输出替换后的字符串。#include #include #define M 100#define N 50int SubString(char sub,char S, int pos, int len ) int i;if(posstrlen(S)| lenstrlen(S)-pos+1) return -1; for(i=0;i0) n=strlen(S); m=strlen(T); i=pos; while(i=n-m+1) SubString (sub, S, i, m); if (strcmp(sub,T)!=0)+i ; else return i ; return 0; char *test9(char s1, char s2, char t)int i,pos; char tempM;int m,n;char sM=;m=strlen(s1);n=strlen(s2);i=1;pos=1;while ( pos0) t=t*10+c%10; c=c/10; if(t=x)return 1; else return 0;void main()int a,b=0;printf(please input a long intn);scanf(%d,&a);b=test1(a);if (b=1) printf(%8d is huiwenshu,a);else printf(%8d is not a huiwenshu,a);C程序设计基础上机考试二基本要求:1)所有程序不准使用外部变量2)子函数中不能出现数据的输入输出语句3)每个程序至少包含两个函数模块1 输入一串可能包含空格的字符串,计算该字符串中数字(整数)的个数。#include stdio.h#include string.hvoid main()char a100;int count;int test1(char a);printf(输入字符串:n);gets(a);count=test1(a);printf(整数个数为:%dn,count);int test1(char a)int i,j,n=0;for (i=0;ai!=0;i+)if (ai=0&ai=0&aj=9) break; n+; i=j;return(n);2 删除字符串中的数字字符/*算法:对字符串中的每个元素进行判断是否为数字,若是,则将下一个字符移到该字符处,字符串长度-1,*/#includestdio.h#includestring.h void fun(ch)char ch30;int i,j,len=0;len=strlen(ch);printf(%dn,len); for(i=0;i0 & chi9) for(j=i;jlen-1;j+) chj=chj+1; len-; i=i-1; chlen=0; void main() char ch30; int i; printf(输入字符串:); gets(ch); fun(ch); printf(删除后的数据:n); printf(%s,ch);getch();3计算并输出high以内最大的10个素数之和。#include #include #include int fun( int h ) int sum = 0, n=0, j, yes; while (h = 2 & n 10) yes = 1; for (j=2;j=h/2;j+ ) if (h%j=0) yes=0; continue; if (yes) sum +=h; n+; h-; return (sum );main ( ) int high; printf(input high,high) ; scanf(%d,&high) ; printf(%dn, fun (high);getch();4已知A,B是两个整数集合,将A中和B相同的数据删除,并输出删除后的集合。#include stdio.hvoid main()int a100,b100,c100;int text (int a,int b,int c,int n1,int n2);int n1,n2,n3,i;printf(输入A组的个数:);scanf(%d,&n1);printf(输入A组的元素:);for (i=0;in1;i+) scanf(%d,&ai);printf(输入B组的个数:);scanf(%d,&n2);printf(输入B组的元素:);for (i=0;in2;i+) scanf(%d,&bi);n3=text (a,b,c,n1,n2);printf(交集:);for (i=0;in3;i+)printf(%d ,ci);putchar(n);int text (int a,int b,int c,int n1,int n2)int i,j,n=0;for (i=0;in1;i+) for (j=0;jn2;j+)if (ai=bj) break; cn+=ai;return(n);5计算字符串s中含有字符串t的数目, 并输出。#include stdio.hint count(char str,char substr) int I,j,k,num=0; for(I=0; strI!=0;I+) for(j=I ,k=0;substrk=strj;k+,j+) if(substrk+1=0 *说明主串字符与子串相同* num+;break; return(num); void main() char s80,t80; int n; gets(s); gets(t); printf(%dn,count(s,t);getch();6编程实现:在已排好序的字符串中插入一个新的字符串,使插入后仍然有序,输出插入后的字符串。程序1: sort(string2 ) char string280; char t; int i, j, n; n = strlen ( string2); for ( i=0; in-1; i+ ) /* 冒泡法排序 */ for ( j=0; j string2j+1 ) t = string2j; string2j = string2j+1; string2j+1 = t; main ( ) char str180, str280, str80; int i, j, n; printf (Enter string1:); gets ( str1 ); printf (Enter string2:); gets ( str2);sort(str2); n = 0; for ( i=0,j=0; str1i!=0 & str2j!=0; ) if ( str1i =a j & a j !=0) j+; for (i=strlen(a)+k; i=j; i-) ai+1=ai; aj=sk; 7在三位整数中寻找符合条件的整数,并依次有大到小存入数组,并输出,它既是完全平方数,又是两位数字相同。int ch(int); int main(void) int i; for (i=10;i*i0) t=t*10+c%10; c=c/10; if(t=x)return 1; else return 0;void main()int a,b=0;printf(please input a long intn);scanf(%d,&a);b=test1(a);if (b=1) printf(%8d is huiwenshu,a);else printf(%8d is not a huiwenshu,a);9找出200以内所有的完数,并输出其因子。一个数若恰好等于它的各因子之和,称其为完数。例如:6=1+2+3,其中1、2、3为因子,6是因子和。#include stdio.hmain() int m,i,s;for(m=1;m=200;m+) if(m=inzi(m)printf(%d ,m); getch();inzi(m)int m;int i ,s=0 ;for(i=1;im;i+) if(m%i=0)s=s+i; return (s) ;10统计在字符串str中26个小写英文字母各自出现的次数。#include /* 统计数组,初始化时全为 0 */ main ( ) int k; char line200; int count128=0;printf (nEnter String:);gets (line);tj(line,count);for (k=0;k0 ) printf (%c=%dt, k,countk);getch();tj(line,count)char line200;int count128;int k=0;while ( linek != 0 )/* 对字符进行统计 */count line k+ +; /* 将字符作为下标*/
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!