1. 程式人生 > 其它 >C語言程式設計第4章節練習題

C語言程式設計第4章節練習題

技術標籤:C語言章節練習題c語言c++

練習4-1
請寫出滿足以下條件的邏輯表示式
(1)判斷ch是否為小寫英文字母
(ch>=‘a’)&&(ch<=‘z’)
(2)判斷ch是否為英文字母,分大小寫
(ch>=‘a’)&&(ch<=‘z’)||(ch>=‘A’)&&(ch<=‘Z’)
(3)3<=x<=5
3<=x&&x<=5
(4)x為0
!x

練習4-2
數學式3<=x<=5,寫成C語言表示式"3<=x<=5",對嗎?為什麼?

複習點:答:不對,寫成C語言3<=x<=5時,由於運算子是左結合性,程式先判斷3<=x得出的邏輯結果是0或者1,再判斷0或者1小於等於5,其結果也只能是0或者1。不能準備表達數學表示式所表達的意思。

練習4-3~4-4
複習點:C語言規定邏輯表示式的執行結果如下:
(1)對於任何邏輯表示式a&&b,若a的值為假,則不再計算b的值,直接得到a&&b的值為0;若a的表示式為真,則計算b的值,根據b的值決定a&&b的結果。
(2)對於任何邏輯表示式a||b,若a的值為真,則不再計算b的值,直接得到a&&b的值為1;若a的表示式為假,則計算b的值,根據b的值決定a&&b的結果。

練習4-5
統計學生平均成績與及格人數:輸入一個正整數n,再輸入n個學生的成績,計算平均成績,並統計所有及格學生的人數。

#include<stdio.h>
int main()
{
	int a,n,i,count=0;
	float sum=0,average;
	printf("請輸入學生人數:\n");
	scanf("%d",&n);
	printf("請輸入學生成績:\n");
	for(i=1;i<=n;i++)
	{
		scanf("%d",&a);
		if(a>=
60) count++; sum=sum+a; } average=sum/n; printf("平均成績為%.3f,及格人數為%d",average,count); }

練習4-6
從鍵盤輸入一個字元,如果是小寫字母,則將其轉換為大寫字母輸出。如果是大寫字母,則將其轉換成小寫字母輸出。如果是其他字元,則原樣輸出。

複習點:小寫字母轉換大寫字母:ch-32;大寫字母轉換小寫字母:ch+32;大小寫之間ASCII碼值相差32。

#include<stdio.h>
int main()
{
	char ch; 
	ch=getchar();
	if((ch>='a')&&(ch<='z'))
	printf("%c",ch-32);
	else if ((ch>='A')&&(ch<='Z'))
	printf("%c",ch+32);
	else
	printf("%c",ch);
 } 

練習4-7
根據如下分段函式編寫程式,輸入一個x值,輸出相應的y值。
在這裡插入圖片描述

#include<stdio.h>
int main()
{
	float x,y;
	printf("請輸入x的值:\n");
	scanf("%f",&x);
	if(x>-5&&x<0)
	y=x-1;
	else if(x==0)
	y=x;
	else if(x>0&&x<8)
	y=x+1;
	else
	y=10;
	printf("y=%.3f",y);
}

練習4-9
請將例4-12的分段函式使用巢狀的if—else語句實現。
在這裡插入圖片描述

#include<stdio.h>
int main()
{
	float x;
	int y;
	scanf("%f",&x);
	if(x>0)
	y=1;
	else
	{
		if(x==0) 
		y=0;
		else 
		y=-1;
	}
	printf("%d",y);
}

其他都為問答題,且較為簡單,是書本上的一些語法使用注意事項。