回圈陳述句練習:
1)計算n的階乘:
#include <stdio.h>
int main()
{ int i = 0;
int ret = 1;
printf("計算階乘:>");
int n = 0;
scanf("%d", &n);
for(i = 1; i<=n; i++)
{
ret = ret * i;
}
printf("結果是:%d",ret);
return 0;
}

2)計算1!+2!+3!+…+10!:
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
int n = 0;
int ret = 1;
for(i = 1; i<= 10; i++)
{
ret = 1;
for(n = 1; n <= i; n++)
{
ret = ret * n;
}
sum = sum + ret;
}
printf("%d\n",sum);
return 0 ;
}

第二種:
#include <stdio.h>
int main()
{
int i = 0;
int sum = 0;
int n = 0;
int ret = 1;
for(i = 1; i<= 10; i++)
{
ret = ret * i;
sum = sum + ret;
}
printf("%d\n",sum);
return 0 ;
}
3)在一個有序陣列中查找具體的某個數字n:
#include <stdio.h>
int main()
{
int arr[] = {1,2,3.4,5,6,7,8,9,10,11};
int left = 0;
int sz = sizeof(arr)/sizeof(arr[0]);
int right = sz-1;
int mid= (left + right)/2;
int k = 7;
while(left<=right)
{
if(arr[mid] >k)
{
right = mid - 1;
}
else if(arr[mid] <k)
{
left = mid + 1;
}
else
{
printf("找到了,下標是:%d\n",mid);
break;
}
}
if(left>right)
printf("找不到\n");
return 0 ;
}
運用了二分找查法,利用下標與陣列中的元素關系,尋找中間值,從而找到目標數字,
4)撰寫代碼,演示多個字符從兩端移動,向中間匯聚 :
#include <string.h>
#include <stdio.h>
#include<Windows.h>
int main()
{
char arr1[] = "welcome to GPNU!" ;
char arr2[] = "################";
int left = 0;
int right = strlen(arr1)-1;
while(left<=right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n",arr2);
Sleep(1000);
system("cls");
left++;
right--;
}
printf("%s\n",arr2);
return 0;
}
Sleep(1000); 睡眠函式,可以短暫停留,
system(“cls”); 清空螢屏
5)撰寫代碼實作,模擬用戶登錄情景,并且只能登錄三次 :
#include <string.h>
#include <stdio.h>
int main()
{
int i = 0;
char password[20] = {};
for(i=0; i<3; i++)
{
printf("請輸出密碼:>");
scanf("%s",password);
if(strcmp(password,"123456") == 0)
{
printf("登錄成功\n");
break;
}
else if(i<2)
{
printf("密碼錯誤,請重新輸入\n");
}
}
if(i==3)
printf("三次密碼均錯誤,退出程式\n");
return 0;
}


c語言練習:
1、關于c語言關鍵字說法正確的是:(B)
A.關鍵字可以自己創建
B.關鍵字不可以自己創建
C.關鍵字可以做變數名
D.typedef不是關鍵字
2、下面不是關鍵字的是(C)
A.int
B.struct
C.define 預處理指令
D.continue
3、
int func(int a)
{
int b;
switch(a)
{
case 1: b= 30;
case 2: b= 20;
case 3: b= 16;
case 4: b= 0;
}
return b;
}
則func(1)=(D)
A.30
B.20
C.16
D.0
沒有break陳述句,所以一直執行到結束,
寫代碼將三個數從大到小輸出
#include <string.h>
#include <stdio.h>
int main()
{
int a= 0;
int b= 0;
int c= 0;
scanf("%d %d %d",&a,&b,&c);
if(a<b)
{
int tmp = a;
a=b;
b= tmp;
}
if(a<c)
{
int tmp = a;
a=c;
c= tmp;
}
if(c>b)
{
int tmp = b;
b=c;
c= tmp;
}
printf("%d %d %d",a,b,c);
return 0;
}
寫代碼輸出1-100中3的倍數
#include <string.h>
#include <stdio.h>
int main()
{
int i = 0;
for(i=0; i<=100;i++)
{ if(i % 3==0)
{
printf("%d \n",i);
}
}
return 0;
}
給定兩個數,求這兩個數的最大公約數
#include <stdio.h>
int main()
{
int m =0;
int n =0;
scanf("%d%d",&m,&n);
int r = m % n;
while(r!=0)
{
m = n;
n = r;
r = m % n;
}
printf("%d",n);
return 0;
}
輾轉相除法: m除以n,若剩有余數,余數賦值為n,原先n的值賦值給m,再繼續相除,直到余數為0,此時n的值就是兩個數的最大公約數,
列印1000年到2000年之間的閏年
判斷閏年的方法是 1、能被4整除且不能被100整除,2、能被400整除 ,
#include <stdio.h>
int main()
{
int year = 0;
for(year=1000; year<=2000;year++)
{
if(year %4 ==0 && year % 100 !=0 )
printf("%d ",year);
else if(year %400 ==0)
printf("%d ",year);
}
return 0;
}

列印100~200之間的素數
試除法:
#include <stdio.h>
int main()
{
int i= 0;
int count =0;
for(i=100; i<=200; i++)
{
int j= 0;
for(j=2; j<i; j++)
{
if(i%j == 0)
{
break;
}
}
if(j == i)
{
count++;
printf("%d ",i);
}
}
printf("\ncount=%d\n",count);
return 0;
}

當一個數不是素數時,這個數可以寫成,i=a*b,且a\b<=開平方i.
4、
關于while(條件運算式),以下敘述正確的是(B)?(假設回圈體里面沒有break,continue,return,goto等等陳述句)
A.回圈體的執行次數總是比條件運算式的執行次數多一次
B.條件運算式的執行次數總是比回圈體的執行次數多一次
C.條件運算式的執行次數與回圈體的執行次數一樣
D.條件運算式的執行次數與回圈體的執行次數無關
1-100之間有多少個數字9
#include <stdio.h>
int main()
{
int i =0;
int count = 0;
for(i=1; i<=100;i++)
{ if(i%10 == 9)
{
count++;
}
if(i/10 == 9)
{
count++;
}
}
printf("%d ",count);
return 0;
}
一共20個9,
分數求和
求解:1/1-1/2+1/3-1/4+1/5…+1/99-1/100;
#include <stdio.h>
int main()
{
int i =0;
double sum = 0.0;
int flag =1;
for(i=1; i<=100; i++)
{
sum += flag*1.0/i;
flag = -flag;
}
printf("%lf\n",sum);
return 0;
}

求十個負數的最大值
#include <stdio.h>
int main()
{
int i = 0;
int arr[] ={-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
int max = arr[0];
int sz = sizeof(arr)/sizeof(arr[0]);
for(i=1; i<sz; i++)
{
if(arr[i]> max)
{
max = arr[i];
}
}
printf("max=%d\n",max);
}

列印九九乘法表
#include <stdio.h>
int main()
{
int i = 0;//列印九行
for(i= 1; i<= 9; i++)
{
int j = 1;//列印一行
for(j=1; j<=i; j++)
{
printf("%d*%d=%-2d ",i,j,i*j);//左對齊,列印數字時列印兩位,數字不夠兩位就用空格填充
}
printf("\n");
}
return 0;
}

大部分代碼都沒有辦法自己寫出來,但是能夠理解代碼,所以需要反復看,將方法和演算法記住,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/272185.html
標籤:其他
下一篇:天道好輪回,傅里葉分析
