《《c語言課后習題》word版》由會員分享,可在線閱讀,更多相關《《c語言課后習題》word版(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、1. 從鍵盤輸入一個浮點數(shù),輸出該數(shù)(只輸出小數(shù)點后兩位)
#include
int main()
{
float n;
printf("please input a number: ");
scanf("%f",&n);
printf("%.2f\n",n);
return 0;
}
2.從鍵盤輸入自己的學號,
輸出:
xxxxxxxxxx:你好!
#include
#include
int main()
{
char str[15];
printf("please
2、 enter your study number: ");
gets(str);
printf("%s:你好!\n",str);
return 0;
}
3從鍵盤輸入一個小寫字母,輸出該字母的大寫。
#include
void main()
{
char ch;
printf("please input a lowercase letter: ");
ch=getchar();
ch=ch-32;
printf("%c\n",ch);
}
4.從鍵盤輸入一個四位正整數(shù),輸出該數(shù)的各個位數(shù)字之和。
#include
3、
int main()
{
int n,ge,shi,bai,qian;
printf("please input a 4-digit: ");
scanf("%d",&n);
qian=n/1000;
bai=n%1000/100;
shi=n%100/10;
ge=n%10;
printf("sum=%d\n",ge+bai+shi+qian);
return 0;
}
5 從鍵盤輸入年月日,輸出該日期是該年的第幾天。
輸入:2000-1-1
輸出:2000-1-1是2000年的第1天
輸入:2000-12-
4、31
輸出:2000-12-31是2000年的第366天
#include
int main()
{
int month,day,year,sum=0;
printf("please input: year-month-day\n");
scanf("%d-%d-%d",&year,&month,&day);
switch(month-1)
{
case 11:sum=sum+30;
case 10:sum=sum+31;
case 9:sum=sum+30;
case 8:sum=sum+31;
case 7:sum=
5、sum+31;
case 6:sum=sum+30;
case 5:sum=sum+31;
case 4:sum=sum+30;
case 3:sum=sum+31;
case 2:sum=sum+28;
case 1:sum=sum+31;
}
if((year % 400 ==0) ||( year % 100 !=0) && (year % 4 ==0))
{
if(month>=3)
sum=sum+day+1;
else
sum=sum+day;
}
else
sum=sum+day;
printf
6、("%d-%d-%d是%d的第%d天.\n",year,month,day,year,sum);
return 0;
}
6回文是指正向讀和反向讀都一樣的一段數(shù)字或者文字,如321123或“able was I ere I saw elba”。
編寫程序,輸入一個6位正整數(shù),判斷它是否是回文,非回文逆序輸出。
如果輸入數(shù)不符合要求,則顯示一個錯誤信息:“xxxx不是一個六位數(shù)”。
輸出格式:“122221是回文數(shù)!”,“122223不是回文數(shù). 它的逆序數(shù)是322221”。
#include
int main()
{
int m,n;
7、
printf("Please input a liuweishu:");
scanf("%d",&m);
if(m < 100000 || m > 999999)
{
printf("%d is not a liuweishu.\n",m);
}
else
{
{
n = m / 100000 % 10 + m / 10000 % 10 * 10 + m / 1000 % 10 * 100 + m / 100 % 10 * 1000 + m / 10 % 10 * 10000 + m % 10 * 100000;
//經(jīng)過拆數(shù)過后重新
8、組合的新數(shù)與原來的數(shù)互為回文數(shù)
}
if(m==n)
{
printf("%d 是回文數(shù).",m);
}
else
{
printf("%d 是回文數(shù),它的逆序數(shù)為%d.",m,n);
}
}
return 0;
}
7 使用循環(huán)方式計算S=1立方+2立方+3立方+……+n立方 ,n值由鍵盤輸入。
#include
int main()
{
int s,n,j,i;
printf("please input n:");
scanf("%d",&n);
j=0;
for (
9、i=1;i<=n;i++)
{
s=i*i*i;
j+=s;
}
printf("%d\n",j);
return 0;
}
8 從鍵盤輸入行數(shù)n(1-40),輸出如下圖形(設n為5):
*
***
*****
*******
#include
int main()
{
int i,j,n;
printf("please input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
p
10、rintf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("*");
}
printf("\n");
}
return 0;
}
9 輸出九九乘法表:
1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
……
#include
int main()
{
int n,i,j;
for(n=1;n<=9;n++)
{
i=1;
for(;i<=n;i++)
{
j=n*i;
printf("%d*%d=
11、%2d",i,n,j);
printf(" ");
}
printf("\n");
}
return 0;
}
10 隨機生成兩個不超過1000的隨機數(shù),統(tǒng)計這兩個隨機數(shù)之間有多少個素數(shù)(含這兩個數(shù)),并輸出。
#include
#include
#include
int main()
{
int a,b,c,d,e=0,f;
srand (time(0));
a=rand( )%1000;
b=rand( )%1000;
if(a
12、=a;
a=c;
}
printf("%d %d\n",a,b);
for( ;b<=a;b++)
{
for(f=b,d=2;d<=a/2;d++)
{
if(f%d==0)
{
break;
}
}
if(d>f/2)
{printf("%4d ",f);
e=e+1;
}
}
printf("\n素數(shù)個數(shù)為%d\n",e);
return 0;
}
11 使用rand函數(shù)隨機產(chǎn)生20個整數(shù)并輸出,然后按降序排列后再輸出
#include
#inc
13、lude
#include
int main()
{
int a,i;
srand(time(0));
for(i=0;i<20;i++)
{
a=rand();
printf("%d\t",a);
}
return 0;
}
12 使用gets函數(shù)(用戶可以輸入空格)從鍵盤輸入兩個字符串s1和s2,然后統(tǒng)計s1與s2的對應位上大于、等于和小于的次數(shù)并輸出結果(判斷次數(shù)以字符串短者為準),如:
s1為“abcdefghi”
s2為“daccfg”
則輸出大于數(shù)2,等于數(shù)1,小于數(shù)3
#incl
14、ude
int main()
{
int i=0,dengyu=0,dayu=0,xiaoyu=0;
char a[20],b[20];
printf("please input 2 strings:\n");
gets(a);
gets(b);
while(a[i++])
if(a[i]>b[i])
{
dayu++;
}
else if(a[i]==b[i])
{
dengyu++;
}
else
{
xiaoyu++;
}
printf("dayu
15、: %d \nxiaoyu: %d \ndengyu: %d \n",dayu,xiaoyu,dengyu);
return 0;
}
13 .輸出楊輝三角形(根據(jù)輸入的n值,輸出n行,n<15)
1
1 1
1 2 1
1 3 3 1
……
#include
int main()
{
int i,j,n,a[100][100];
printf("請輸入數(shù)字:");
scanf("%d",&n);
for(i=1;i<=n;i++)
a[i][1]=a[i][i]=1;
for(i=3;i
16、<=n;i++)
for(j=2;j
17、1 10 9
#include
int main(void)
{
int i, j, k, n, begin, end;
int a[15*15], arr[15][15];
printf("Enter n:(n<=15)\n");
scanf("%d", &n); //輸入n的值
/* 將1~n*n的值依次賦給數(shù)組a的各元素 */
for (k=0; k
18、
/* 從第一行開始順時針依次將螺旋矩陣存放到二維數(shù)組arr中 */
while (begin < end)
{
/* 給二維數(shù)組arr最上邊一行的前n-1個元素賦值(從左到右逐個賦值) */
for (j=begin; j
19、組arr最下邊一行的右邊n-1個元素賦值(從右到左逐個賦值) */
for (j=end; j>begin; j--)
{
arr[i][j] = a[k];
k++;
}
/* 給二維數(shù)組arr最左邊一列的n-1個元素賦值(從下到上逐個賦值) */
for (i=end; i>begin; i--)
{
arr[i][j] = a[k];
k++;
}
begin++;
end--;
i++;
}
/* 如果矩陣的行、列數(shù)是奇數(shù),則給最中間的元素賦值 */
if (begin ==
20、 end)
{
arr[begin][end] = a[k];
}
/* 輸出矩陣 */
for (i=0; i0
#include
int main()
21、{
void fx();
printf("please enter a number:\n");
fx();
return 0;
}
void fx()
{
int i,m=1,n=-1,k=0;
scanf("%d",&i);
if(i>0)
{
printf("fx=%d\n",m);
}
else if(i<0)
{
printf("fx=%d",n);
}
else
printf("fx=%d",k);
}
16 編寫兩個函數(shù):主函數(shù)數(shù)組輸入、數(shù)組輸出及調(diào)用函數(shù),功能函數(shù)對該數(shù)組元素按
22、降序排序
#include
int main()
{
void fun(int array[],int n);
int a[10],i;
printf("請輸入10個數(shù)組元素:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
fun(a,10);
printf("數(shù)組元素按降序排列為:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
return 0;
}
void fun(int array[],int n)
{
int i,j,k;
for(j=0;j