第一篇:計算機系C語言編程50題(含答案)
1、輸入1~10之間的一個數字,輸出它對應的英文單詞。#include “stdio.h” main(){ int x;printf(“please input x(1-10):n”);scanf(“%d”,&x);switch(x){ case 1:printf(“one”);break;case 2:printf(“two”);break;case 3:printf(“three”);break;case 4:printf(“four”);break;case 5:printf(“five”);break;case 6:printf(“six”);break;case 7:printf(“server”);break;case 8:printf(“eight”);break;case 9:printf(“nine”);break;case 10:printf(“ten”);break;} }
2、用自然語言描述程序邏輯如下,試寫程序。① 設置環境;
② 定義變量i、j、s,以及用于放置結果的變量sum,并令sum初值為0; ③ i=1;
④ 如果i≤100,則轉⑤,否則轉⑧;
⑤ 令s=0,求前i個自然數之和,并放于變量s之中; ⑥ sum=sum+s; ⑦ i增加1,轉④; ⑧ 輸出和sum,結束。#include “stdio.h” main(){ int i,j,s;long sum=0;for(i=1;i<=100;i++){ s=0;for(j=1;j<=i;j++){
s=s+j;} sum=sum+s;
} printf(“sum=%d”,sum);}
3、用自然語言描述的程序邏輯為:(假設正確口令為123456)① 設置環境;
② 定義變量i、flag和password,并令flag=0,i=0; ③ 用戶回答口令,將其賦于password變量;
④ 口令正確?如果是,則flag=1,轉⑥。否則轉⑤; ⑤ 回答三次口令了嗎?如果沒有,計數器加1后(i++),轉③,否則轉⑥; ⑥ 根據flag之值輸出相應信息。#include “stdio.h” main(){ long i=0,flag=0,password;printf(“please input password:n”);scanf(“%ld”,&password);do { if(password==123456)flag=1;i++;}while(i<3);if(flag==1)printf(“口令正確!”);else printf(“口令不正確!”);}
4、用自然語言描述的程序邏輯如下: ① 設置環境;
② 定義變量digit、x、y分別表示原始數、原始數的個位數和逆數; ③ 輸入原始正整數x;
④ 從x中分解出個位數字digit; ⑤ 合并個位digit至逆數y中; ⑥ 原始數x縮小10倍:x=x/10; ⑦ 如果x非零,則轉④;
⑧ 輸出逆數y,結束 #include “stdio.h” main(){ int digit,x,y=0;printf(“please input x:n”);scanf(“%d”,&x);do { digit=x%10;y=y*10+digit;x=x/10;} while(x);printf(“%d”,y);}
5、輸入某三角形的三個邊的長度,判斷出這是個什么三角形(等腰、等邊、任意,或不能構成)。#include “stdio.h” main(){ float a,b,c;printf(“please input a,b,c:n”);scanf(“%f,%f,%f”,&a,&b,&c);if(a>0&&b>0&&c>0&&a+b>c&&b+c>a&&a+c>b){ if(a==b&&a==c&&b==c){
printf(“等邊三角形!”);}
else { if(a==b||a==c||b==c)
{
printf(“等腰三角形!”);
}
else
{
printf(“任意三角形!”);
}
} } else { printf(“不能構成三角形!”);} }
6、輸入10個數,分別統計其中正數、負數、零的個數。#include “stdio.h” #define N 10 main(){ int i,zsum=0,fsum=0,lsum=0;float x;for(i=1;i<=N;i++){ printf(“請輸入第%d個數:”,i);scanf(“%f”,&x);if(x>0)zsum++;else if(x==0)lsum++;
else fsum++;} printf(“有%d個正數,%d個負數,%d個零”,zsum,fsum,lsum);}
7、先隨機產生N個三位自然數輸出,然后再輸出其中同時是3、5、7倍數的數。(設N為100)#include “stdio.h” #include “stdlib.h” #include “time.h” #define N 100 main(){ int i,x;randomize();for(i=1;i<=N;i++){ x=random(900)+100;printf(“%dt”,x);if(x%3==0&&x%5==0&&x%7==0)printf(“n*%d*n”,x);}
}
8、已知x和y存在下列對應關系,要求對輸入的每個x值,計算出y值,請編程。y=0,x=a||x=-a;y=sqrt(a*a-x*x),-a 9、計算:1/2-2/3+3/4-4/5??,前100項。#include “stdio.h” main(){ int i,t=1;float sum=0;for(i=1;i<=100;i++){ sum=sum+(t*i*1.0)/(i+1);t=-t;} printf(“%f”,sum);} 10、從終端輸入3個數a、b、c,按從大到小的順序輸出。#include “stdio.h” #define N 3 main(){ int x[N],i,j,temp;for(i=0;i if(x[j]>x[i]) { temp=x[i]; x[i]=x[j]; x[j]=temp; } } } for(i=0;i 11、打印出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其各位數字立方之和等于該數本身。#include “stdio.h” #include “math.h” main(){ int i,gw,sw,bw;for(i=100;i<=999;i++){ gw=i%10;sw=i/10%10;bw=i/100%10;if(i==pow(gw,3)+pow(sw,3)+pow(bw,3))printf(“%dn”,i);} } 12、求下列式子的值:1-1/2+1/3-1/4+??+1/99-1/100,將結果輸出。#include “stdio.h” main(){ int i,t=1;float sum=0;for(i=1;i<=100;i++){ sum=sum+(1.0*t)/(i+1);t=-t;} printf(“sum=%f”,sum);} 13、編程輸入整數a和b,若大于100,則輸出百位以上的數字,否則輸出兩數之和。#include “stdio.h” main(){ int a,b;printf(“please input a,b:n”);scanf(“%d,%d”,&a,&b);if(a>100&&b>100){ printf(“%d,%d”,a/100,b/100);} else { printf(“%d”,a+b);} } 14、輸入學生的成績,利用計算機將學生的成績劃分出等級并輸出:90~100:A級; 80~89:B級; 70~79:C級; 60~69:D級; 0~59:E級; #include “stdio.h” main(){ int chengji;printf(“please input chengji:n”);scanf(“%d”,&chengji);if(chengji>=90&&chengji<=100)printf(“A”);else if(chengji>=80)printf(“B”);else if(chengji>=70)printf(“C”);else if(chengji>=60)printf(“D”);else printf(“E”);} 15、把100~200之間的不能被3整除的數輸出。#include “stdio.h” main(){ int i;for(i=100;i<=200;i++)if(i%3!=0)printf(“%dt”,i);} 二 數組循環部分: 16、從終端(鍵盤)讀入20個數據到數組中,統計其中正數的個數,并計算這些正數之和。#include “stdio.h” #define N 5 main(){ float x[N],sum=0;int i,count=0;for(i=0;i count++; sum+=x[i]; } } printf(“count=%d,sum=%f”,count,sum);} 17、從終端(鍵盤)將5個整數輸入到數組a中,然后將a逆序復制到數組b中,并輸出b中各元素的值。#include “stdio.h” #define N 5 main(){ int a[N],b[N],i;for(i=0;i 18、一輛卡車違反交通規則,撞人后逃跑。現場有三人目擊事件,但都沒有記住車號,只記下車號的一些特征。甲說:牌照的前兩位數字是相同的;乙說:牌照的后兩位數字是相同的,但與前兩位不同;丙是數學家,他說:四位的車號剛好是一個整數的平方。請根據以上線索找出車號。include “stdio.h” #include “math.h” main(){ int x;/*x表示四位車號*/ int gw,sw,bw,qw;for(x=0;x<=9999;x++){ gw=x%10;/*個位*/ sw=x/10%10;/*十位*/ bw=x/100%10;/*百位*/ qw=x/1000%10;/*千位*/ if(bw==qw&&gw==sw&&gw!=bw&&sqrt(x)==(int)sqrt(x))printf(“%dt”,x);} } 19 安人員審問四名竊賊嫌疑犯。已知,這四人當中僅有一名是竊賊,還知道這四人中每人要么是誠實的,要么總是說謊的。在回答公安人員的問題中:甲說“乙沒有偷,是丁偷的”,乙說“我沒有偷,是丙偷的”,丙說“甲沒有偷,是乙偷的”,丁說“我沒有偷”。請根據這四人的答話判斷誰是盜竊者 #include “stdio.h” main(){ int a,b,c,d;for(a=0;a<=1;a++)for(b=0;b<=1;b++)for(c=0;c<=1;c++)for(d=0;d<=1;d++)if(b+d==1&&b+c==1&&a+b==1)printf(“%d,%d,%d,%dn”,a,b,c,d);}“百錢百雞”問題。百錢買百雞,雞翁一值錢三,雞母一值錢二,雞雛三值錢一,問雞翁、雞母、雞雛各幾何?*/ #include “stdio.h” main(){ int jiweng,jimu,jichou;for(jiweng=1;jiweng<=33;jiweng++)for(jimu=1;jimu<=50;jimu++){ jichou=100-jiweng-jimu;if(jiweng*3+jimu*2+jichou*1.0/3==100)printf(“%d,%d,%dn”,jiweng,jimu,jichou);} } B、C、D、E五名學生有可能參加計算機競賽,根據下列條件判斷哪些人參加了競賽.(1)A參加時,B也參加;(2)B和C只有一個人參加; (3)C和D或者都參加,或者都不參加;(4)D和E中至少有一個人參加; (5)如果E參加,那么A和D也都參加。(程序有誤)#include “stdio.h” main(){ int a,b,c,d,e;/*用表示參加,表示未參加*/ for(a=0;a<=1;a++)for(b=0;b<=1;b++)for(c=0;c<=1;c++)for(d=0;d<=1;d++)for(e=0;e<=1;e++){ if(a==1)b=1;if(b==1)c=0;else c=1;if(c==1)d=1;else if(c==0)d=0;if(d||e)} } 輸入一個字串,判斷它是否是對稱串。如”abcdcba”是對稱串,”123456789”不是。#include “stdio.h” #include “string.h” main(){ char s[50];int i,flag=1;;gets(s);for(i=0;i<=strlen(s)/2-1;i++){ if(s[i]!=s[strlen(s)-i-1]){ flag=0;break;} } if(flag==1){ printf(“%s是對稱串”,s);} else { printf(“%s不是對稱串”,s);} } 23 隨機產生N個大寫字母輸出,然后統計其中共有多少個元音字符。(設N為200)#include “stdio.h” #include “stdlib.h” #include “time.h” #define N 200 main(){ int i,count=0,ch;randomize();for(i=1;i<=N;i++){ ch=random(26)+65;printf(“%ct”,ch);if(ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U')count++;} printf(“count=%d”,count);} 24 從鍵盤輸入長度不等的兩個字串,將長串連接于短串之后輸出。include “string.h” main(){ char s1[50],s2[100];gets(s1);/*輸入長串*/ gets(s2);/*輸入短串*/ puts(strcat(s2,s1));} 2 5鍵盤輸入兩個字串,輸出其中較短的那個字串,并輸出它的長度。#include “stdio.h” #include “string.h” main(){ char s1[100],s2[100];gets(s1);gets(s2);if(strlen(s1) 29入一行英文,已知各單詞之間用1個空格或一個標點符號相隔(設第一個單詞前沒有空格),統計這行英文有多少個單詞。 #include “stdio.h” #include “string.h” main(){ char s[100];int i,count=0;gets(s);for(i=0;i 30輸入一行字符串,按如下規則加密:如果是英文字母則大寫變小寫、小寫變大寫,對非英文字符則保持不變。試寫加密程序。 #include “stdio.h” #include “string.h” main(){ char s[100];int i;gets(s);for(i=0;i 31隨機產生N個兩位自然數,降序排列后輸出。(設N為20)#include “stdio.h” #include “stdlib.h” #include “time.h” #define N 20 main(){ int x[N],i,j,temp;randomize();for(i=0;i } } for(i=0;i 32求s=a+aa+aaa+aaaa+......+aa...a的值,其中a是1~9之間的一個數字,表達式項數從鍵盤輸入(設不超過10項)。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。#include “stdio.h” #include “math.h” main(){ int i,a,n;long t=0,s=0;scanf(“%d,%d”,&a,&n);s=t=a;printf(“%d”,t);for(i=1;i for(i=1;i<=n;i++){ s=s+i*pow(10,n-i); } printf(“%d”,s);} 34小學生智商測試。讓電腦隨機出十道100以內整數的加法題(10分/題),小學生從鍵盤回答答案,統計小學生最后得分。 #include “stdio.h” #include “stdlib.h” #include “time.h” main(){ int i,x,y,sum,chengji=0;randomize();for(i=1;i<=10;i++){ x=random(100)+1;y=random(100)+1;printf(“%d+%d=”,x,y);scanf(“%d”,&sum);if(x+y==sum)chengji+=10;printf(“n”);} printf(“chengji=%d”,chengji);} 35斐氏數列是公元13世紀數學家斐波拉契發明的。即:1,2,3,5,8,13,21,34,55,89,??,輸出其前15項。 #include “stdio.h” #define N 15 main(){ int x,y,z,i;x=1;y=2;printf(“%dt%d”,x,y);for(i=3;i<=N;i++){ z=x+y;printf(“t%d”,z);x=y;y=z;} } 36輸入一個十進數,將其轉換成 N 進制數(0 digit=x%n; s[i]=digit; i++; x=x/10;}while(x);for(i=strlen(s);i>=0;i--)printf(“%d”,s[i]);} else { printf(“n超出范圍!”);} } 37輸入n個整數,將其中最小者與第一個數對調,最大者與最后一個數對調。#include “stdio.h” #define N 10 main(){ int x[N],max,min,i,min_i,max_i;/*輸入N個數*/ for(i=0;i max=x[i]; max_i=i;} if(x[i] min=x[i]; min_i=i;} } /*輸出原來N個數*/ printf(“原來N個數如下:n”);for(i=0;i 41從鍵盤上輸入若干學生的一門課成績,計算出平均分,當輸入負數時結束輸入。將結果輸出。#include “stdio.h” main(){ int x,count=0;float sum=0,avg;scanf(“%d”,&x);while(x>=0){ sum+=x;count++;scanf(“%d”,&x);} avg=sum/count;printf(“avg=%f”,avg);} 42打印以下圖案: 倒三角 #include “stdio.h” main(){ int i,j;for(i=4;i>=0;i--){ /*輸出每行前的空格*/ for(j=0;j<20-i;j++){ printf(“ ”);} /*輸出每行中的*號個數*/ for(j=0;j<2*i-1;j++){ printf(“*”);} /*輸出換行符*/ printf(“n”);} } 43求一個3*3的整型矩陣對角線元素之和。#include “stdio.h” #include “stdlib.h” #include “time.h” main(){ int x[3][3],i,j,sum=0;/*隨機產生整型矩陣,并輸出*/ randomize();for(i=0;i<3;i++){ for(j=0;j<3;j++){ x[i][j]=random(900);printf(“%dt”,x[i][j]);} printf(“n”);} /*求對角線元素和*/ sum=x[0][0]+x[1][1]+x[2][2];printf(“n對角線和=%d”,sum);} 44求滿足1+2+3+?+n<500中最大的N,并求其和,編寫程序實現。#include “stdio.h” main(){ int n=0,sum=0;while(sum<500){ n++;sum+=n;} printf(“n=%d”,n);} 45求N的階乘,N由鍵盤輸入。#include “stdio.h” main(){ int n,i;long t=1;scanf(“%d”,&n);for(i=n;i>=1;i--)t=t*i;printf(“%d!=%ld”,n,t);} 三、自定義函數與指針部分: 46、鍵盤輸入長方體的長寬高l、w、h,求其體積及表面積。要求用自定義函數val(l,w,h)計算長方體的體積和表面積,計算結果使用全局變量帶回主函數。#include “stdio.h” float tiji,bmianji;void val(float l,float w,float h);main(){ float l,w,h;scanf(“%f,%f,%f”,&l,&w,&h);val(l,w,h);printf(“tiji=%f,bmianji=%f”,tiji,bmianji);} void val(float l,float w,float h){ tiji=l*w*h;bmianji=2*(l*w+l*h+w*h);} 47、找出三位自然數中的所有素數,要求判斷x素數用自定義函數data(x)實現。#include “stdio.h” int data(int x);main(){ int i;for(i=100;i<=999;i++)if(data(i))printf(“%dt”,i);} int data(int x){ int flag=1,i;for(i=2;i if(x%i==0){ flag=0; break;} if(flag==1) return 1;else return 0;} 48、輸出n行由“#”組成的矩形,每行“#”的個數為m個,其中n、m由終端(鍵盤)輸入。要求輸出m個“#”功能由函數satr(m)函數實現。#include “stdio.h” void satr(int m);main(){ int m,n,i;printf(“please input m,n:n”);scanf(“%d,%d”,&m,&n);for(i=1;i<=n;i++){ satr(m);printf(“n”);} } void satr(int m){ int i;for(i=m;i>=1;i--)printf(“#”);} 49、編寫程序,建立phone.txt文件,由鍵盤輸入5個人的姓名、手機號碼、家庭住址,寫入該文件中。#include “stdio.h” #define size 5 struct student { char name[20];int num;char addr[20];}stud[size]; void save(){ FILE *fp;int i;if((fp=fopen(“c:phone.txt”,“wb”))==NULL){ printf(“n不能打開文件,錯誤”); exit(0);} for(i=0;i main(){ int i;for(i=0;i 50、輸出某二維數組中各元素的內存地址及其值。#include “stdio.h” #include “stdlib.h” #include “time.h” #define M 4 #define N 6 main(){ int x[M][N],i,j,*p;randomize();for(i=0;i for(i=0;i C語言經典編程題 題目01:在一個已知的字符串中查找最長單詞,假定字符串中只含字母和空格,空格用來分隔不同的單詞。 [cpp] view plain copy print? 1.2.3.4.5.6.7.8.9.int main(){ // 用數組定義一個字符串 char array[50] = “zha junju zhamengjun z mengjun”; char *str = array;// 定義指針變量str,指向數組array int len = 0;// 定義變量len,用于計數 int max = 0;// 定義變量max,存放最長單詞的長度 char *p = 0;// 定義指針變量p,指向最長單詞的首字符 10.11.// 判斷指針當前指向的字符是不是'
主站蜘蛛池模板:
国产+成+人+亚洲欧洲自线|
野外做受又硬又粗又大视幕|
国产精品一区二区久久|
无码毛片aaa在线|
华人在线亚洲欧美精品|
国产精品夜夜春夜夜爽久久小说|
无码人妻丰满熟妇片毛片|
亚洲成人一区|
亚洲国产欧美人成|
中文在线а天堂中文在线新版|
免费黄色电影在线观看|
四虎永久在线精品国产免费|
肥老熟妇伦子伦456视频|
18禁无遮挡无码网站免费|
久久69精品久久久久久hb|
麻豆国产成人av高清在线观看|
精品欧洲av无码一区二区14|
妺妺窝人体色777777|
亚洲丁香五月天缴情综合|
99视频精品全部免费 在线|
亚洲精品乱码久久久久久中文字幕|
99视频30精品视频在线观看|
女人被男人爽到呻吟的视频|
国产免费mv大全视频网站|
国内精品免费久久久久电影院97|
波多野结衣中文字幕一区二区三区|
日木强大喷奶水av片|
手机午夜电影神马久久|
久久经精品久久精品免费观看|
亚洲成av人片在线观看无码|
欧美日韩精品一区二区在线观看|
人妻少妇偷人无码精品av|
亚洲2020天天堂在线观看|
日韩精品无码专区免费播放|
国产强伦姧在线观看|
国内精品久久人妻无码网站|
亚洲人成网线在线播放va蜜芽|
无码人妻丰满熟妇啪啪区日韩久久|
国内精品国语自产拍在线观看|
国产欧美日韩一区二区搜索|
精品无码av一区二区三区不卡|
第二篇:C語言經典編程題(推薦)