中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      C語言編程題

      時間:2024-09-26 13:45:39 飛宇 筆試題目 我要投稿
      • 相關推薦

      C語言編程題

        C語言是一種廣泛應用于系統(tǒng)編程、嵌入式開發(fā)、軟件開發(fā)等多個領域的高級編程語言。它以其高效、靈活和可移植性而受到程序員的喜愛。對于初學者來說,掌握C語言的基礎至關重要,這包括理解基本語法、控制結構(如選擇結構和循環(huán)結構)、函數(shù)、指針以及數(shù)據(jù)結構(如結構體)。以下是小編整理的相關內(nèi)容,一起來看看吧。

        C語言編程題 1

        1)讀文件file1.txt的內(nèi)容(例如):

        12

        34

        56

        輸出到file2.txt:

        56

        34

        12

        (逆序)

        第一題,注意可增長數(shù)組的應用.

        #include

        #include

        int main(void)

        {

        int MAX = 10;

        int *a = (int *)malloc(MAX * sizeof(int));

        int *b;

        FILE *fp1;

        FILE *fp2;

        fp1 = fopen(“a.txt”,”r”);

        if(fp1 == 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”,&a[i]) != 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,”%d\n”,a[j]);

        fclose(fp1);

        fclose(fp2);

        return 0;

        }

        可謂是反序的經(jīng)典例程.

        void inverse(char *p)

        {

        if( *p = = ‘\0′ )

        return;

        inverse( p+1 );

        printf( “%c”, *p );

        }

        int main(int argc, char *argv[])

        {

        inverse(“abc\0″);

        return 0;

        }

        借簽了樓上的“遞規(guī)反向輸出”

        #include

        void test(FILE *fread, FILE *fwrite)

        {

        char buf[1024] = {0};

        if (!fgets(buf, sizeof(buf), fread))

        return;

        test( fread, 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 BBB

        {

        long num;

        char *name;

        short int data;

        char ha;

        short ba[5];

        }*p;

        p=0×1000000;

        p+0×200=____;

        (Ulong)p+0×200=____;

        (char*)p+0×200=____;

        希望各位達人給出答案和原因,謝謝拉

        解答:假設在32位CPU上,

        sizeof(long) = 4 bytes

        sizeof(char *) = 4 bytes

        sizeof(short int) = sizeof(short) = 2 bytes

        sizeof(char) = 1 bytes

        由于是4字節(jié)對齊,

        sizeof(struct BBB) = sizeof(*p)

        = 4 + 4 + 2 + 1 + 1/*補齊*/ + 2*5 + 2/*補齊*/ = 24 bytes (經(jīng)Dev-C++驗證)

        p=0×1000000;

        p+0×200=____;

        = 0×1000000 + 0×200*24

        (Ulong)p+0×200=____;

        = 0×1000000 + 0×200

        (char*)p+0×200=____;

        = 0×1000000 + 0×200*4

        你可以參考一下指針運算的細節(jié)

        2、運用四色定理,為N個局域舉行配色,顏色為1、2、3、4四種,另有數(shù)組adj[][N],如adj[i][j]=1則表示i區(qū)域與j區(qū)域相鄰,數(shù)組color[N],如color[i]=1,表示i區(qū)域的顏色為1號顏色。

        四色填充

        3、用遞歸算法判斷數(shù)組a[N]是否為一個遞增數(shù)組。

        遞歸的方法,記錄當前最大的,并且判斷當前的是否比這個還大,大則繼續(xù),否則返回false結束:

        bool fun( int a[], int n )

        {

        if( n= =1 )

        return true;

        if( n= =2 )

        return a[n-1] >= a[n-2];

        return fun( a,n-1) && ( a[n-1] >= a[n-2] );

        }

        4、編寫算法,從10億個浮點數(shù)當中,選出其中最大的10000個。

        用外部排序,在《數(shù)據(jù)結構》書上有

        《計算方法導論》在找到第n大的數(shù)的算法上加工

        5、編寫一unix程序,防止僵尸進程的出現(xiàn).

        3.可怕的題目終于來了

        象搜索的輸入信息是一個字符串,統(tǒng)計300萬輸入信息中的最熱門的.前十條,我們每次輸入的一個字符串為不超過255byte,內(nèi)存使用只有1G,

        請描述思想,寫出算發(fā)(c語言),空間和時間復雜度,

        4.國內(nèi)的一些帖吧,如baidu,有幾十萬個主題,假設每一個主題都有上億的跟帖子,怎么樣設計這個系統(tǒng)速度最好,請描述思想,寫出算發(fā)(c語言),空間和時間復雜度,

        1. 簡述一個Linux驅(qū)動程序的主要流程與功能。

        2. 請列舉一個軟件中時間換空間或者空間換時間的例子。

        void swap(int a,int b)

        {

        int c; c=a;a=b;b=a;

        }

        —>空優(yōu)

        void swap(int a,int b)

        {

        a=a+b;b=a-b;a=a-b;

        }

        6. 請問一下程序?qū)⑤敵鍪裁唇Y果?

        char *RetMenory(void)

        {

        char p[] = “hellow world”;

        return p;

        }

        void Test(void)

        {

        char *str = NULL;

        str = RetMemory();

        printf(str);

        }

        RetMenory執(zhí)行完畢,p資源被回收,指向未知地址。返回地址,str的內(nèi)容應是不可預測的, 打印的應該是str的地址

        寫一個函數(shù),它的原形是int continumax(char *outputstr,char *intputstr)

        功能:

        在字符串中找出連續(xù)最長的數(shù)字串,并把這個串的長度返回,并把這個最長數(shù)字串付給其中一個函數(shù)參數(shù)outputstr所指內(nèi)存。例如:”abcd12345ed125ss123456789″的首地址傳給intputstr后,函數(shù)將返回

        9,outputstr所指的值為123456789

        int continumax(char *outputstr, char *inputstr)

        {

        char *in = inputstr, *out = outputstr, *temp, *final;

        int count = 0, maxlen = 0;

        while( *in != ‘\0′ )

        {

        if( *in > 47 && *in < 58 )

        {

        for(temp = in; *in > 47 && *in < 58 ; in++ )

        count++;

        }

        else

        in++;

        if( maxlen < count )

        {

        maxlen = count;

        count = 0;

        final = temp;

        }

        }

        for(int i = 0; i < maxlen; i++)

        {

        *out = *final;

        out++;

        final++;

        }

        *out = ‘\0′;

        return maxlen;

        }

        不用庫函數(shù),用C語言實現(xiàn)將一整型數(shù)字轉(zhuǎn)化為字符串

        方法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 = s[i];

        s[i] = s[j];

        s[j] = c;

        }

        }

        void itoa(int n,char s[])

        {

        int i,sign;

        if((sign = n) < 0)

        n = -n;

        i = 0;

        do{/*以反序生成數(shù)字*/

        s[i++] = n%10 + ’0′;/*get next number*/

        }while((n /= 10) > 0);/* the number*/

        if(sign < 0)

        s[i++] = ‘-’;

        s[i] = ‘\0′;

        reverse(s);

        }

        方法2:

        #include

        using namespace std;

        void itoint num);

        void itoint num)

        {

        int i = 0;

        int j ;

        char stra[10];

        char strb[10];

        while ( num )

        {

        stra[i++]=num%10+48;

        num=num/10;

        }

        stra[i] = ‘\0′;

        for( j=0; j < i; j++)

        {

        strb[j] = stra[i-j-1];

        }

        strb[j] = ‘\0′;

        cout< }

        int main()

        {

        int num;

        cin>>num;

        itonum);

        return 0;

        }

        C語言編程題 2

        1、請編一個函數(shù)fun,它的功能是:根據(jù)以下公式求π的值(要求滿足精度0.0005,即,某項小于0.0005時停止迭代):

        程序運行后,如果輸入精度0.0005,則程序輸出多少。

        注意:部分源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

        試題源程序如下:

        #include

        #include

        double fun(double eps)

        {

        }

        main()

        { double x;

        printf("Input eps:");

        scanf("%lf",&x); printf("eps=%lf, PI=%lf",x,fun(x));

        }

        分析:

        (1)本題所用基本算法應為累加。假設累加值放在變量s中,累加項放在變量t中,累加操作由語句s=s+t;來實現(xiàn)。

        (2)若稱 為第1累加項,則其前的1為第0累加項,其后的一項為第2累加項,按給定的公式可知,從第1累加項開始,后一項的累加項是前一項的值乘以 。所以當前的累加項應當是:t=t*n/(2.0*n+1.0)。表達式右邊的t中是前一項的值,表達式左邊的t為當前的每累加累加項。請注意,不要寫成:t*n/(2*n+1)而進行整除。

        (3)若第0累加項的1作為s的初值,語句:s=s+t;執(zhí)行n次,就把第1到第n項累加到了s中。每進行一次累加,n值增1。

        (4)把以上操作放在循環(huán)中。按本題規(guī)定,當某項小于eps(0.0005)時停止迭代,因此若用while循環(huán),可用t>=eps作為控制循環(huán)進行的條件:

        while( t>=eps ){ s+=t; n++; t=t*n/(2.0*n+1); }

        (5)注意應給所用變量賦適當?shù)某踔怠?/p>

        (6)退出循環(huán)后,函數(shù)的返回值應是:2*s。2、請編一個函數(shù)fun,其中n所指存儲單元中存放了數(shù)組中元素的個數(shù)。函數(shù)的功能是:刪除所有值為y的元素。已在主函數(shù)中給數(shù)組元素賦值,y的值由主函數(shù)通過鍵盤讀入。

        注意:部分源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

        試題源程序如下:

        #include

        #define M 20

        void fun(int bb[],int *n, int y)

        {

        }

        main()

        { int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1}, n=15, y, k;

        printf("The original data is: ");

        for(k=0; k

        fun(aa, &n, y);

        printf("The data after d %d: ",y);

        for(k=0; k

        }

        分析:

        (1)本題的基本算法是查找和刪除。

        (2)若循環(huán)控制變量是i,通過for循環(huán)逐個檢查元素中的值,把數(shù)組元素中不等于y的值從頭開始重新放入bb所指的數(shù)組中。用i作為下標,逐個引用數(shù)組元素;用i作為下標,把不等于y的元素中的值逐一重新放入bb所指的數(shù)組中。這一操作可用以下語句來實現(xiàn):

        if(bb[i]!=y)bb[j++]=bb[i];

        (3)因為已刪除了與y值相等的元素,因此,數(shù)組中數(shù)據(jù)的個數(shù)已經(jīng)改變;所以循環(huán)結束后,需要重新給n所指變量賦值。退出循環(huán)后,變量j中存放的是刪除后數(shù)組中數(shù)據(jù)的個數(shù),通過語句*n=j;把它賦給n所指變量即可。

        (4)主函數(shù)中輸出aa數(shù)組中原有的數(shù)據(jù),和刪除后的.數(shù)據(jù)。考生可以對照所編函數(shù)是否正確。3.請編寫一個函數(shù)void fun(char m,int k,int xx[]),該函數(shù)的功能是:將大于整數(shù)m且緊靠m的k個素數(shù)存入xx所指的數(shù)組中。例如,若輸入17和5,則應輸出:19,23,29,31, 37。

        注意:部分源程序存在PROG1.C中,請勿改動主函數(shù)和其他函數(shù)中的內(nèi)容,僅在函數(shù)fun的指定的部位填入你編寫的若干語句。

        試題源程序如下:

        #include

        void fun(int m, int k, int xx[])

        {

        }

        main()

        { int m, n, zz[100];

        printf("Please enter two integers(m & n): ");

        scanf("%d%d",&m,&n);

        fun(m, n, zz);

        for(m=0; m

        printf("");

        }

        分析:

        (1)本題的基本算法是求素數(shù)。假設有整數(shù)i,若i不能被2到i之間的任意一個數(shù)除盡,則i就是素數(shù);若一旦能被某個數(shù)除盡就不是素數(shù)。

        (2)以下是求i是否為素數(shù)的基本算法:變量ok用作i是素數(shù)的標志,ok為1,則i是素數(shù)。

        ok=1;

        for(p=2; p

        if( i%p==0){ ok=0; break; }

        if(ok)……

        (3)本題要求把大于m的k個素數(shù)存入xx所指的數(shù)組中。所以,i的值應大于m;取大于m的值逐一進行判斷,若是素數(shù)就放入xx所指數(shù)組中。把以上語句放入一個循環(huán)中:

        for( i=m+1,j=0; ? ; i++ )

        { ok=1;

        for(p=2; p<=i/2; p++)

        if( i%p==0 ){ ok=0; break; }

        if (ok) { xx[j]=i;j++; }

        }

        此處,變量i統(tǒng)計存入數(shù)組中元素的個數(shù),同時作為下標。

        (4)按本題的要求,外循環(huán)結束的條件應當是:j

      【C語言編程題】相關文章:

      C語言編程練習04-05

      學習c語言編程總結07-11

      經(jīng)典C語言面試算法題03-17

      Visual C#的Excel編程03-19

      淺析基于C語言的計算機軟件編程實驗03-20

      C++編程簡歷表格11-22

      2017年計算機二級考試C語言編程題練習題及答案03-10

      C++/C程序員基本編程技能筆試10-26

      C++/C程序員編程技能筆試題04-04

      主站蜘蛛池模板: 美腿丝袜美腿国产在线| 乱人伦人妻中文字幕不卡| 大渡口区| 亚洲一区精品中文字幕| 久热re在线视频精品免费| 贵定县| 日本理论在线免费观看| caoporon国产超碰公开| 蜜桃成人午夜激情网站| 临桂县| 日本亚洲一级中文字幕| 亚洲一级无码AV毛片久久| 国产香蕉一区二区三区| 特级毛片a级毛片在线播放www | 无码一区二区三区久久精品| 遂溪县| 久久99国产亚洲高清观看首页| 日韩精品视频免费久久| 国产在线一区二区视频免费观看 | 连山| 中文字幕一区二区三区网址| 无码 免费 国产在线观看91| www.尤物视频.com| 国产精品亚洲综合色区丝瓜 | 久久亚洲国产欧洲精品一| 亚洲九九夜夜| 国产亚洲人成在线影院| 广水市| 琼海市| 孝昌县| 欧美激情国产一区在线不卡| 牙克石市| 奉贤区| 方正县| 邢台市| 亚洲日韩精品AⅤ片无码富二代| 日韩中文字幕无码av| 绍兴县| 国产人妖av一级黄片| 亚洲一区二区三区无吗| 中文字幕日韩精品人妻在线|