1、最新C语言编程题范文模板 12页本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!= 本文为word格式,下载后可方便编辑和修改! = C语言编程题1)读文件file1.txt的内容(例如):123456输出到file2.txt:563412(逆序)第一题,注意可增长数组的应用.#include#includeint main(void)int MAX = 10;int *a = (int *)malloc(MAX * sizeof(int);int *b;FILE *fp1;FILE *fp2;fp1 = fopen(“a.txt”,”r”);if(f
2、p1 = NULL)printf(“error1);exit(-1);fp2 = fopen(“b.txt”,”w”);if(fp2 = NULL)printf(“error2);exit(-1);int i = 0;int j = 0;while(fscanf(fp1,”%d”,&ai) != EOF)i+;j+;if(i = MAX)MAX = 2 * MAX;b = (int*)realloc(a,MAX * sizeof(int);if(b = NULL)printf(“error3);exit(-1);a = b;for(;j = 0;)fprintf(fp2,”%dn”,aj);f
3、close(fp1);fclose(fp2);return 0;可谓是反序的经典例程.void inverse(char *p)if( *p = = 0 )return;inverse( p+1 );printf( “%c”, *p );int main(int argc, char *argv)inverse(“abc0);return 0;借签了楼上的“递规反向输出”#includevoid test(FILE *fread, FILE *fwrite)char buf1024 = 0;if (!fgets(buf, sizeof(buf), fread)return;test( frea
4、d, fwrite );fputs(buf, fwrite);int main(int argc, char *argv)FILE *fr = NULL;FILE *fw = NULL;fr = fopen(“data”, “rb”);fw = fopen(“dataout”, “wb”);test(fr, fw);fclose(fr);fclose(fw);return 0;在对齐为4的情况下struct BBBlong num;char *name;short int data;char ha;short ba5;*p;p=01000000;p+0200=_;(Ulong)p+0200=_
5、;(char*)p+0200=_;希望各位达人给出答案和原因,谢谢拉解答:假设在32位CPU上,sizeof(long) = 4 bytessizeof(char *) = 4 bytessizeof(short int) = sizeof(short) = 2 bytessizeof(char) = 1 bytes由于是4字节对齐,sizeof(struct BBB) = sizeof(*p)= 4 + 4 + 2 + 1 + 1/*补齐*/ + 2*5 + 2/*补齐*/ = 24 bytes (经Dev-C+验证)p=01000000;p+0200=_;= 01000000 + 0200
6、*24(Ulong)p+0200=_;= 01000000 + 0200(char*)p+0200=_;= 01000000 + 0200*4你可以参考一下指针运算的细节2、运用四色定理,为N个局域举行配色,颜色为1、2、3、4四种,另有数组adjN,如adjij=1则表示i区域与j区域相邻,数组colorN,如colori=1,表示i区域的颜色为1号颜色。四色填充3、用递归算法判断数组aN是否为一个递增数组。递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回false结束:bool fun( int a, int n )if( n= =1 )return true;
7、if( n= =2 )return an-1 = an-2;return fun( a,n-1) & ( an-1 = an-2 );4、编写算法,从10亿个浮点数当中,选出其中最大的10000个。用外部排序,在数据结构书上有计算方法导论在找到第n大的数的算法上加工5、编写一unix程序,防止僵尸进程的出现.3.可怕的题目终于来了象搜索的输入信息是一个字符串,统计300万输入信息中的最热门的前十条,我们每次输入的一个字符串为不超过255byte,内存使用只有1G,请描述思想,写出算发(c语言),空间和时间复杂度,4.国内的一些帖吧,如baidu,有几十万个主题,假设每一个主题都有上亿的跟帖子,
8、怎么样设计这个系统速度最好,请描述思想,写出算发(c语言),空间和时间复杂度,1. 简述一个Linux驱动程序的主要流程与功能。2. 请列举一个软件中时间换空间或者空间换时间的例子。void swap(int a,int b)int c; c=a;a=b;b=a;空优void swap(int a,int b)a=a+b;b=a-b;a=a-b;6. 请问一下程序将输出什么结果?char *RetMenory(void)char p = “hellow world”;return p;void Test(void)char *str = NULL;str = RetMemory();print
9、f(str);RetMenory执行完毕,p资源被回收,指向未知地址。返回地址,str的内容应是不可预测的, 打印的应该是str的地址写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:”abcd12345ed125ss123456789的首地址传给intputstr后,函数将返回 9,outputstr所指的值为123456789int continumax(char *outputstr, cha
10、r *inputstr)char *in = inputstr, *out = outputstr, *temp, *final;int count = 0, maxlen = 0;while( *in != 0 )if( *in 47 & *in 47 & *in 58 ; in+ )count+;elsein+;if( maxlen count )maxlen = count;count = 0;final = temp;for(int i = 0; i maxlen; i+)*out = *final;out+;final+;*out = 0;return maxlen;不用库函数,用C
11、语言实现将一整型数字转化为字符串方法1:int getlen(char *s)int n;for(n = 0; *s != 0; s+)n+;return n;void reverse(char s)int c,i,j;for(i = 0,j = getlen(s) 1; i j; i+,j)c = si;si = sj;sj = c;void itoa(int n,char s)int i,sign;if(sign = n) 0);/*delete the number*/if(sign 0)si+ = -;si = 0;reverse(s);方法2:#includeusing namespace std;void itochar(int num);void itochar(int num)int i = 0;int j ;char stra10;char strb10;while ( num )strai+=num%10+48;num=num/10;strai = 0;for( j=0; j i; j+)strbj = strai-j-1;strbj = 0;coutnum;itochar(num);return 0;以下文字仅用于测试排版效果, 请使用时删除!冬是清寒的。站在有风的地方,悄然回首,看见来时的路。一路有花的娇艳,有草的青葱,有树的挺拔,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1