當前位置:首頁 » 編程語言 » 最簡單的c語言題型
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

最簡單的c語言題型

發布時間: 2023-07-26 16:50:55

A. 幾道簡單的c語言編程題目!!~~求教高手

//輸入兩個正整數m和n,求其最大公約數和最小公倍數
#include <stdio.h>

void main()
{
int p,r,n,m,temp;
printf("請輸入兩個正整數n,m:");
scanf("%d,%d",&n,&m);

//把大數放在n中,小數放在m中
if(n<m)
{
temp=n;
n=m;
m=temp;
}

//先將n和m的乘積保存在p中,以便求最小公倍數時用
//求n和m的最大公約數
p=n*m;

//展轉相除法,求最大公約數
while(m!=0)
{
r=n%m;
n=m;
m=r;
}

printf("它們的最大公約數是%d\n",n);
//最小公倍數=兩數乘積/最大公約數
printf("它們的最小公倍數是%d\n",p/n);

}
//求1-1/3+1/5-1/7+…,直到某項的絕對值小於0.0001
#include<stdio.h>
void main()
{
float a=1,s=0;
int i=2,t;
while(a<=10000.0)
{
if((i%2)==0)
{
s+=1.0/a;
a=a+2.0;
i++;
}
else
{
s-=1.0/a;
a=a+2.0;
i++;
}
}
printf("%f\n",s);
}
//一球從100m高度自由落下,每次落地後反跳回原高度的一半,再落下.求它在第10次
//落地時,共經過多少m?第10次反彈多高?

#include <stdio.h>

void main()
{
float sn=100,hn=sn/2; //初始值
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn; //累記路徑長度
hn=hn/2; //反彈高度
}

printf("第10次落地時共經過%fm.\n",sn);
printf("第10次反彈%fm.\n",hn);
}
// 給出10個兒童的體重,要求計算平均體重並列印出低
於平均體重的數值。
#include<stdio.h>
void main()
{
float a[10],p,sum=0;
int i;
printf("請輸入10個人的體重:\n");
for(i=0;i<10;i++)
{
scanf("%f",&a[i]);
sum+=a[i];
}
p=sum/10.0;
printf("10個人的平均體重是%3.2f:",p);
printf("低於平均體重的是:\n");
for(i=0;i<10;i++)
{
if(a[i]<p)
{
printf("%3.2f\n",a[i]);
}
}

}
第一個有點復雜~~~加點分嘛~~~
//主函數實現從鍵盤輸入5個學生的5門功課的成績,sum函數實現統計出每個學生的5門功課的總成績,sort函數實現根據5個學生的總成績用冒泡法進行排序,再逆序存放並輸出。

#include<stdio.h>

#define N 5

void main(void)
{
int sum(int (*a)[N]);
void sort(int *y);

int a[N][N],he[N]={0};
int i,j,*p;

for(i=0;i<N;i++)
{
printf("Input the %dth student's scores:",i+1);
for(j=0;j<N;j++)
{
scanf("%d",&a[i][j]);
}

}

for(i=0;i<N;i++)
{
he[i]=sum(&a[i]);
}

printf("\n");
for(i=0;i<N;i++)
{
printf("%d ",he[i]);
}
p=he;
sort(p);
}

int sum(int (*a)[N])
{
int tmpsum=0;
int i;

for(i=0;i<N;i++)
{
tmpsum+=*(*a+i);
}
return tmpsum;
}

void sort(int y[N])
{
int j,i,tmp;
for(j=0;j<N-1;j++)
{
for(i=j+1;i<N;i++)
{
if(y[j]>y[i])
{
tmp=y[j];
y[j]=y[i];
y[i]=tmp;
}
}
}
for(j=0;j<N;j++)
{
printf(" %d",y[j]);
}
printf("\n\n");
for(j=0;j<N/2;j++)
{
tmp=y[j];
y[j]=y[N-j-1];
y[N-j-1]=tmp;
}
for(j=0;j<N;j++)
{
printf(" %d",y[j]);
}
}



B. 簡單c語言編程題

根據題意,程序分三個主要功能:1、從數組中查找一個整數。2、向數組插入一個整數。3、數組升序排列。

一、其中查找功能,數組無序或升序對應二種寫法(直接遍歷比較、二分法)。

對於升序數組用二分法查找更快(本案例只有10個數,如數字量大則效果更明顯)。

二、數組插入功能,將插入位置及其往後的元素均後移一位(數組大小需多預留1位)。

另外:重復的代碼段要寫成獨立函數,避免代碼冗餘。

下面是代碼(數值我用的隨機數填充,你想手動輸入自添scanf函數):

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#define M 10//最大整數個數

void input(int nums[],int len);//輸入

void showNum(int nums[],int len);// 列印數組

void px(int nums[],int len);//排序

int checkNum(int nums[],int len,int n);//檢查n是否存在於無序數組num,是返回下標,否將n插入數組並返回-1。

int checkNumPX(int nums[],int len,int n);//檢查n是否存在於升序數組num,是返回下標,否將n插入對應位置並返回-1。

void move1(int nums[],int len,int inx);//從下標inx開始的元素,全部往後移動1位(inx下標空出來給插入)

int main()

{

int nums[M+1],len=M+1,inx,n;//預留一位給插入

srand(time(NULL));

input(nums,len-1);

showNum(nums,len-1);

printf("請輸入要查找的數n:"),scanf("%d",&n);

inx=checkNum(nums,len-1,n);

if(inx!=-1) printf("存在!下標是%d ",inx);

if(inx==-1) printf("不存在!已在數組末尾插入,插入後的數組為: "),showNum(nums,len);

printf(" -----------------------下面是問題2------------------------------- ");

input(nums,len-1);

px(nums,len);

showNum(nums,len-1);

printf("請輸入要查找的數n:"),scanf("%d",&n);

inx=checkNumPX(nums,len-1,n);

if(inx!=-1) printf("存在!下標是%d ",inx);

if(inx==-1) printf("不存在!已在插入數組對應的位置 "),showNum(nums,len);

return 0;

}

void input(int nums[],int len)

{

int i;

for(i=0,printf("生成%d個2位隨機整數...... ",len);i<len;nums[i]=rand()%90+10,i++);//10~99隨機數

}

void showNum(int nums[],int len)

{

int i;

for(i=0,printf("當前數組元素為: ");i<len;printf("%d ",nums[i]),i++);

printf(" ");

}

void px(int nums[],int len)

{

int i,j;

for(i=0,printf("對數組進行升序排序...... ");i<len;i++)

for(j=i+1;j<len;j++)

if(nums[i]>nums[j]) nums[i]^=nums[j],nums[j]^=nums[i],nums[i]^=nums[j];

}

int checkNum(int nums[],int len,int n)

{

int i;

for(i=0,printf("數組中按元素順序查找%d...... ",n);i<len;i++)

if(nums[i]==n) return i;

if(i==len) nums[len]=n;

return -1;

}

int checkNumPX(int nums[],int len,int n)

{

int bInx=0,eInx=len-1,mInx;

printf("對升序數組按二分法查找%d...... ",n);

while(eInx-bInx>1)//當序列區間元素大於2個時,取中間值

{

mInx=bInx+(eInx-bInx)/2;

if(nums[mInx]==n) return mInx;

if(n<nums[mInx]) eInx=mInx;//n比中間值小,取前半區間中間繼續比較

if(n>nums[mInx]) bInx=mInx;//n比中間值大,取後半區間中間繼續比較

}

if(nums[eInx]==n) return eInx;

if(nums[bInx]==n) return bInx;

if(n<nums[bInx]) move1(nums,len+1,bInx),nums[bInx]=n;

if(n>nums[bInx] && n<nums[eInx]) move1(nums,len+1,eInx),nums[eInx]=n;

if(n>nums[eInx]) move1(nums,len+1,eInx+1),nums[eInx+1]=n;

return -1;

}

void move1(int nums[],int len,int inx)

{

int i;

for(i=len-1;i>inx;nums[i]=nums[i-1],i--);

}

C. C語言幾道簡單的題目

【B】2.變數a與b分別初始為10與20,正確的語句是:
A:
int
a=10,
int
b=20;
B:
int
a=10,
b=20;
C:
int
a=10;
b=20;
D:
int
a=10;
b=20,
【C】3.以下選項中正確的C語言常量是:
A:
0xEfGh
B:
'XYZ'
C:
12.34e5
D:
'\5A'
【A】4.設有double
x;char
s[50];輸出雙精度浮點數x和字元串s,正確的語句是:
A:
printf("%lf
%s",x,s);
B:
printf("%ld
%s",x,s);
C:
printf("%lf
%s",&&x,s);
D:
printf("%lf
%s",x,s[50]);
【B】5.語句printf("%.1f,%d\n",10./4,10/8);的輸出是:
A:
2.5,1.25
B:
2.5,1
C:
1,1.25
D:
2,1.25
【B】6.設有char
ch;
與語句「ch=getchar();」等價的語句是:
A:
scanf("%c",ch)
B:
scanf("%c",&ch);
C:
printf("%c",ch);
D:
printf("%c",&ch);
【C】7.
設int
n,m;
使m為n的十進制百位數的語句是:
A:
m
=
n/100;
B:
m
=
n%100;
C:
m
=
n/100%10;
D:
m
=
n%10/100;
【C】8.設float
x,y;
使y為x的小數部分的語句是:
A:
y
=
(int)x;
B:
y
=
int(x);
C:
y
=
x-(int)x;
D:
y
=
x-int(x);
【C】9.
與語句「m
+=
(x=5)
+
(--y);」等價的語句序列是:
A:
m=m+x+y;
x=5;
y=y-1;
B:
x=5;
m=m+x+y;
y=y-1;
C:
x=5;
y=y-1;
m=m+x+y;
D:
y=y-1;
m=m+x+y;
x=5;
【B】10.
設int
n;
對應「n為二位數(10至99)」的判斷表達式是:
A:
10<=n<=99
B:
10<=n
&&&&
n<=99
C:
10<=n
||
n<=99
D:
10<=n,
n<=99
【A】11.
設char
ch;
判斷「ch為數字字元」的表達式是:
A:
ch>='0'
&&&&
ch<='9'
B:
ch>0
&&&&
ch<9
C:
ch>='0'
||
ch<='9'
D:
ch>=0
||
ch<=9
【A】12.
與語句「x+=(a++==b)?c:--d;」功能等價的語句段是:
A:
if
(a==b)
{
a=a+1;
x=x+c;
}
else
{
a=a+1;
d=d-1;
x=x+d;
}
B:
a=a+1;if
(a==b)
{
x=x+c;
}
else
{
d=d-1;
x=x+d;
}
C:
if
(a==b)
{
a=a+1;
x=x+c;
}
else
{
a=a+1;
x=x+d;
d=d-1;
}
D:
if
(a==b)
{
a=a+1;
x=c;
}
else
{
a=a+1;
d=d-1;
x=d;
}
【C】13.
設有in
i;
寫出下列語句的運行結果:
for
(i=0;i<5;i++)
printf("%d",i);
A:
0123456
B:
012345
C:
01234
D:
0123
【C】14.
設有char
ch;
寫出下列語句的運行結果:
for
(ch='B';ch<='F';ch++)
putchar(ch);
A:
ABCDEFG
B:
ABCDEF
C:
BCDEF
D:
BCDEFG
【A】15.
以下一維數組定義中,正確的是:
A:
int
a[5]
=
{
1,2,3,4,5
};
B:
int
a[5]
=
1,2,3,4,5;
C:
int
a[1
to
5];
D:
int
a[]
【D】16.以下字元串定義與賦值中,正確的是:
A:
char
s[80];
s
=
{'A',
'B',
'C'};
B:
char
s[80];
s
=
"ABC";
C;
char
s[80]
=
{"A",
"B",
"C"};
D:
char
s[80]
=
"ABC";
【B】17.
在字元串常用函數中,用於復制字元串的函數是:
A:
strlen
B:
strcpy
C:
strcat
D:
strcmp
【B】18.
設有定義:int
i,
a[10];
能正確輸入a數組各元素的語句是:
A:
i=10;
scanf("%d",
&a[i]);
B:
for(i=0;
i<=9;
i++)
scanf("%d",
a+i);
C:for(i=0;i<10;i++)scanf("%d",a[i]);D:for(i=0;i<10;i++)scanf("%d",
&a);
【B】19.
設有定義:int
a[10]={6,7,8,9,10};正確的解釋是:
A:
將5個初值依次賦給a[1]至a[5]
B:
將5個初值依次賦給a[0]至a[4]
C:
將5個初值依次賦給a[6]至a[10]
D:
將5個初值依次賦給a[5]至a[9]