C語言經典題型NO.3

2021-02-21 小康學編程

63、有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,問最後留下的是原來第幾號的那位?

退出圈子,問最後留下的是原來第幾號的那位
#include <stdio.h>void main(){ int num[50],n,*p,j,loop,i,m,k; printf("請輸入這一圈人的數量:\n"); scanf("%d",&n); p=num; for (j=0;j<n;j++) { *(p+j)=j+1; } i=0; m=0; k=0; while(m<n-1) { if (*(p+i)!=0) { k++; } if (k==3) { k=0; *(p+i)=0; m++; } i++; if (i==n) { i=0; } } printf("現在剩下的人是:"); for (loop=0;loop<n;loop++) { if (num[loop]!=0) { printf("%2d號\n",num[loop]); } } }

64、求一個字符串的長度


#include <stdio.h>#include <stdlib.h>int main(){ int len; char str[20]; printf("請輸入字符串:\n"); scanf("%s",str); len=length(str); printf("字符串有 %d 個字符。",len);}int length(char p[]){int i=0; while(p!='\0')++i; return i;}

65、簡單計算

#include <stdlib.h>#include <stdio.h>
int main(){ int i,n; for(i=1;i<5;i++) { n=0; if(i!=1) n=n+1; if(i==3) n=n+1; if(i==4) n=n+1; if(i!=4) n=n+1; if(n==3) printf("%c\n",64+i); }}

66、編寫一個函數,輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數1/1+1/3+...+1/n(利用指針函數)

#include<stdio.h>#include<stdlib.h>double  evenumber(int n);double  oddnumber(int n);
int main(){ int n; double r; double (*pfunc)(int); printf("請輸入一個數字:"); scanf("%d",&n); if(n%2==0) pfunc=evenumber; else pfunc=oddnumber; r=(*pfunc)(n); printf("%lf\n",r); system("pause"); return 0;}double evenumber(int n){ double s=0,a=0; int i; for(i=2;i<=n;i+=2) { a=(double)1/i; s+=a; } return s;}double oddnumber(int n){ double s=0,a=0; int i; for(i=1;i<=n;i+=2) { a=(double)1/i; s+=a; } return s;}

67、填空練習(指向指針的指針)


#include<stdio.h>#include<stdlib.h>int main(){ char *s[]={"man","woman","girl","boy","sister"}; char **q; int k; for(k=0;k<5;k++) { q=&s[k]; printf("%s\n",*q); } return 0;}

68、找到年齡最大的人,並輸出。找出程序中有什麼問題

#include<stdio.h>#include<stdlib.h>struct man{    char name[20];    int  age;}person[3]={"li",18,"wang",19,"sun",22};int main(){    struct man *q,*p;    int i,m=0;    p=person;    for(i=0;i<3;i++)    {        if(m<p->age)m=p->age;        q=p++;    }    printf("%s %d\n",q->name,q->age);     return 0;}

69、問海灘上原來最少有多少個桃子


#include<stdio.h>#include<stdlib.h>int main(){ int x ,i=0,j=1; while(i<5){ x=4*j; for(i=0;i<5;i++) { if(x%4!=0){break;} x=(x/4)*5+1; } j++; } printf("%d\n",x); return 0;}

70、809*??=800*??+9*??+1 其中??代表的兩位數,8*??的結果為兩位數,9*??的結果為3位數。求??代表的兩位數,及809*??後的結果

#include<stdio.h>#include<stdlib.h>int main(){    int i;    for(i=10;i<100;i++)        if(8*i<100&&9*i>99&&9*i<1000)        {            printf("??代表的兩位數為:%d\n",i);            break;        }    printf("809*%d==800*%d+9*%d+1\n",i,i,i);    return 0;}

71、八進位轉換為十進位

#include<stdio.h>#include<stdlib.h>int main(){    int n=0,i=0;    char s[20];    printf("請輸入一個8進位數:\n");    gets(s);    while(s[i]!='\0'){        n=n*8+s[i]-'0';        i++;    }    printf("剛輸入的8進位數轉化為十進位為\n%d\n",n);        return 0;}

72、求0—7所能組成的奇數個數


#include<stdio.h>#include<stdlib.h>int factorial(int a,int b);int main(){ int sum=0,i; sum+=4; for(i=2;i<8;i++) sum+=4*(factorial(7,i-1)-factorial(6,i-2)); printf("可以組成%d個奇數\n",sum); return 0;}int factorial(int a,int b){ int i,sum=1; if(b<=0)return 1; for(i=0;i<b;i++) sum*=(a-i); return sum;}

73、一個偶數總能表示兩個素數之和

#include<stdio.h>#include<stdlib.h>int Isprimer(unsigned int n);int main(){    unsigned int n,i;    do{        printf("請輸入一個偶數:\n");        scanf("%d",&n);    }while(n%2!=0);    for(i=1;i<n;i++)        if(Isprimer(i)&&Isprimer(n-i))            break;    printf("偶數%d可以分解成%d和%d兩個素數的和\n",n,i,n-i);        return 0;}int Isprimer(unsigned int n){    int i;    if(n<4)return 1;    else if(n%2==0)return 0;    else        for(i=3;i<sqrt(n)+1;i++)            if(n%i==0)return 0;        return 1;}

74、判斷一個素數能被幾個9整除


#include<stdio.h>#include<stdlib.h>int main(){ int p,i; long int sum=9; printf("請輸入一個素數:\n"); scanf("%d",&p); for(i=1;;i++) if(sum%p==0)break; else sum=sum*10+9; printf("素數%d能整除%d個9組成的數%ld\n",p,i,sum); return 0;}

75、結構體變量傳遞


#include<stdio.h>
struct student{ int x; char c;} a;
int main(){ a.x=3; a.c='a'; f(a); printf("%d,%c",a.x,a.c);}f(struct student b){ b.x=20; b.c='y';}

76、讀取7個數(1-50)的整數值,每讀取一個值,程序列印出該值個數的*


#include<stdio.h>#include<stdlib.h>int main(){ int n,i,j; printf("請輸入數字:\n");i--; for(i=0;i<7;i++) { scanf("%d",&n); if(n>50){ printf("請重新輸入:\n");i--; } else { for(j=0;j<n;j++) printf("*"); } printf("\n"); } return 0;}

77、加密算法


#include<stdio.h>#include<stdlib.h>int main(){ int n,i,j; printf("請輸入數字:\n");i--; for(i=0;i<7;i++) { scanf("%d",&n); if(n>50){ printf("請重新輸入:\n");i--; } else { for(j=0;j<n;j++) printf("*"); } printf("\n"); } return 0;}

78、讀結果


#include<stdio.h>#include<stdlib.h>
#define M 5int main(){ int a[M]={1,2,3,4,5}; int i,j,t; i=0;j=M-1; while(i<j) { t=*(a+i); *(a+i)=*(a+j); *(a+j)=t; i++;j--; } for(i=0;i<M;i++) { printf("%d\n",*(a+i)); } }

79、時間函數舉例1


#include <stdio.h>#include <time.h>
int main (){ time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "當前本地時間為: %s", asctime (timeinfo) ); return 0;}

80、時間函數舉例2


#include <stdio.h>#include <time.h>
int main(){ time_t start,end; int i; start=time(NULL); for(i=0;i<300;i++) { printf("\n"); } end=time(NULL); printf("時間間隔為 %6.3f\n",difftime(end,start));}

81、時間函數舉例3


#include <stdio.h>#include <stdlib.h>#include <time.h>
int main(){ long i=10000000L; clock_t start,finish; double TheTimes; printf("做%ld次空循環需要的時間為",i); start=clock(); while(i--); finish=clock(); TheTimes=(double)(finish-start)/CLOCKS_PER_SEC; printf("%f秒。\n",TheTimes); return 0;}

82、簡單的結構體應用實例

#include <stdio.h>
struct programming{ float constant; char *pointer;};
int main(){ struct programming variable; char string[] = "Jser教程:http://www.jser.com"; variable.constant = 1.23; variable.pointer = string; printf("%f\n", variable.constant); printf("%s\n", variable.pointer); return 0;}

相關焦點

  • 學習C語言必看的最經典書籍
    來源:互動出版網學習c語言必看的最經典書籍推薦一:《新概念51單片機C語言教程--入門
  • 專升本c語言和二級c語言哪個難?
    c語言是計算機專業必考的科目,很多同學不知道專升本c語言和二級c語言哪個難?專升本c語言備考技巧有哪些?請看下文的介紹。專升本c語言和二級c語言哪個難?二級c語言要難一些,專升本c語言只考編程題,而且考的題目也不難,二級c語言考的比較系統,題型也更豐富,而且有時考的很細,要求知道更準確的c語言語法。零基礎,如何學c語言?
  • 三、C語言表達式、選擇結構
    帶入為1<0<2,從數學的角度出發肯定是錯的,但是如果是C語言那麼就是正確的!因為要1<0為假得到0,表達式就變成了0<2那麼運算結果就是1,成為了真的了!c、等號和賦值的區別!
  • c語言程序設計自學教程
    如果您不甘落後,那麼請自製自控,自學c語言程序設計也是完全可能的。C語言編譯的程序稱為源程序它以ASCII數值存放在文本文件中。2、#define PI 3.1415926; 這個寫法是錯誤的,一定不能出現分號。 3、每個C語言程序中main函數是有且只有一個4、在函數中不可以再定義函數。
  • c語言經典小程序匯總大全
    當然,如果你覺得學習程式語言很痛苦,堅持了一段時間後無果,南無果斷放棄未必不是一個好的選擇。 經典C語言小程序10例,今天給大家分享10個比較基礎的C語言的小程序,附上幾個常用的10個小例,希望給C語言初學者帶來一定幫助,熟練運用,舉一反三。
  • C語言基礎知識學習經典入門
    目錄1 本課概要... 12 C語言入口方法... 13 C語言標準輸入與輸出... 1
  • c語言五個經典程序
    #13; c語言五個經典程序
  • 你所不知道的C語言經典九大編程實例思想
    獲取更多精彩文章請關注云主宰蒼穹引言:對於學習計算機程式語言而言,一門程式語言的經典思想是十分重要的。這是一門計算機程式語言的特色優點,是其解決問題的經典思維。你所了解的C語言,有哪些經典的編程實例思想,歡迎下方留言交流!
  • 託福備考:經典題型解法及正錯答案特徵
    在此為大家詳細分析了託福閱讀的十大經典題型解析,大家一起了解下吧。  1. 細節題(Factual Information)  解法:a. 提取題幹中關鍵詞定位原文段落中關鍵詞所在的所有句子;b. 閱讀定位句理解。c. 正確選項是正確定位句的同義轉述或者同義改寫。必須在意思上和語言邏輯結構上完全符合定位句。
  • 10個經典的C語言小程序
    今天給大家分享10個比較基礎的C語言的小程序,希望給C語言初學者帶來一定幫助。
  • 10 個經典的 C 語言小程序
    今天給大家分享10個比較基礎的C語言的小程序,希望給C語言初學者帶來一定幫助。1、題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去掉不滿足條件的排列。
  • 「消化完」勾股定理的知識點和經典題型,孩子考試再也不丟分!
    勾股定理又稱畢達哥拉斯定理,它揭示了直角三角形三邊之間的數量關係——如果在直角三角形三邊的兩直角邊長分別為a,b,斜邊為c,那麼a+b=c。它可以解決許多直角三角形中的計算問題,是解直角三角形的主要依據之一。它不僅在數學中,而且在其他自然科學、實際的生產生活中也被廣泛地使用。勾股定理在我們生活中有很大範圍的運用。
  • C語言,C++,C ,Java之間的關係
    C語言,C++,C#,Java,這幾種語言,應該說是當前最流行,也是最基礎的計算機語言。是不是有些人看著會頭大,大腦會不叫混亂,一個計算機怎麼會有那麼的的語言呢?看著就頭大。現在,小編先來給大家說下計算機語言的發張,一臺計算機最本質的語言是機器語言,由01010101的代碼組成,CPU處理的也是由由010101的代碼組成的數據。但是,這種語言太簡單了,不好理解。就來個數字組成的語言,可以用來表達一句話,一個數字,圖像,字母......也許只有計算機可以理解,反正小編是不知道什麼意思。
  • 【C語言】02.第一個C語言程序
    我們前面編寫的C語言代碼,應該保存為一個拓展名為.c的文件,這個.c文件稱為C語言程序的「原始碼文件」,也稱為「源文件」。按下快捷鍵command + s,輸入文件名(我這裡叫做one.c),選擇文件格式
  • 10個經典的C語言面試基礎算法及代碼
    本文包括了經典的Fibonacci數列、簡易計算器、回文檢查、質數檢查等算法。1、計算Fibonacci數列Fibonacci數列又稱斐波那契數列,又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21。
  • c語言50本電子書
    C Primer Plus(第五版)中文版.pdfC專家編程.pdfC和C++內存管理.pdfC和指針.pdfC和指針(第二版).pdfC外掛編寫深究4.3.pdfC大綱[學習庫www.xuexi111.com].pdfC標準庫-中文.pdfC程式設計師面試100題.pptC經典算法大全
  • 2018小學奧數專題五:循環小數的經典題型以及解題方法
    循環小數經典題型:1、下列分數哪些能化為有限小數、純循環小數、混循環小數?若能化成有限小數,小數部分有幾位?若能化成混循環小數,不循環部分有幾位?解題方法:由於1.23(3循環)減1.23=0.003(3循環)等於1/300,所以a=0.3÷1/300=90從而,正確結果為:1.23(3循環)×90=111/90×90=1113、將一個純循環小數0.abc(a、b循環)化成最簡真分數後,它的分母與分子之差為9。求a ,b,c各是多少?
  • c語言入門第一季3
    C語言一經出現就以其功能豐富、表達能力強、靈活方便、應用面廣等特點迅速在全世界普及和推廣今天這篇文章主要講數據輸入和格式化輸出。上面就是c語言包含的數據類型結構這張就是c語言常用的格式化輸出這就是我們這節課的代碼當我們輸入完代碼之後就可以運行了等會我會解釋代碼的內容運行帶代碼點解上面的嘆號就可以了 int age;   float Height; printf("請輸入你的年齡:");//列印到屏幕(括號中得內容)。
  • C語言從入門到放棄(3)
    程序的幾種基本結構程序設計模式    C語言中,常用的流程控制結構分為順序結構、選擇結構和循環結構。由這三種結構可組成各種複雜的程序。順序結構是三種結構中最簡單,最常見的程序結構。三種流程控制結構,使用特定的流程控制語句,從而實現程序的各種結構方式。
  • 全國計算機等級考試二級C語言題一套(供題型參考)
    A.在C語言程序中,main函數必須放在其他函數的最前面B.每個後綴為.C的C語言源程序都可以單獨進行編譯C.在C語言程序中,只有main函數才可單獨進行編譯D.每個後綴為.C的C語言源程序都應該包含一個main函數12.以下選項中不合法的標識符是( )。A.