1.什么是算術(shù)運(yùn)算?什么是關(guān)系運(yùn)算?什么是邏輯運(yùn)算?
答:算術(shù)運(yùn)算時(shí)數(shù)學(xué)里基礎(chǔ)的加減乘數(shù)求余數(shù)等;關(guān)系運(yùn)算時(shí)求兩個(gè)或者多個(gè)變量或者表達(dá)式之間的關(guān)系;邏輯運(yùn)算時(shí)將多個(gè)變量或者表達(dá)式鏈接起來(lái)的邏輯關(guān)系。
2.C語(yǔ)言中如何表示“真”和“假”?系統(tǒng)如何判斷一個(gè)量的“真”和“假”?
答:C語(yǔ)言中將數(shù)值為1作為真,為0作為假,系統(tǒng)將值為非0的變量或表達(dá)式作為真,否則假。
3.寫出下面各邏輯表達(dá)式的值。設(shè)a=3,b=4,c=5.
(1)a+b>c&&b==c
(2)a||b+c&&b-c
(3)!(a>b)&&!c||1
(4)!(x=a)&&(y=b)&&0
(5)!(a+b)+c-1&&b+c/2
答:(1)0 因?yàn)閎!=c;(2)1 因?yàn)閍,b+c,b-c均非0;(3)1 因?yàn)閨|右側(cè)為1 邏輯運(yùn)算符||其中一個(gè)表示為1值則可以判定;
(4)0 很明顯第一個(gè)和第三個(gè)式子為假 &&其中一個(gè)為假 則判定;(5)1 &&前可以表示為0+5-1,后表示4+5/2均非0 。
4.有3個(gè)整數(shù),由鍵盤輸入,輸出其中最大的數(shù)。
include<stdio.h>
int main()
{int a,b,c,z;
scanf("%d%d%d",&a,&b,&c);
if(a>b) z=a;
else z=b;
else z=c;
printf("max=%d",z);
}
5.從鍵盤輸入一個(gè)小于1000的正整數(shù),要求輸出它的平方根(如平方根不是整數(shù),則輸出其整數(shù)部分)。要求在輸入數(shù)據(jù)后先對(duì)其檢查是否為小于1000的正數(shù)。若不是,則要求從新輸入。
include <stdio.h>
include <math.h>
int main()
{
int i,k;
printf("請(qǐng)輸入一個(gè)小于%d的整數(shù)i:",M);
scanf("%d",&i);
if (i>1000)
{printf("輸入的數(shù)不符合要求,請(qǐng)重新輸入一個(gè)小于1000的整數(shù)i:\n");
scanf("%d",&i);
}
k=sqrt(i);
printf("%d的平方根的整數(shù)部分是:%d\n",i,k);
return 0;
}
6.有一個(gè)函數(shù):
{x (x<1)
y={2x-1 (1<=x<10)
{3x-11 (x>=10)
寫程序,輸入x的值,輸出y相應(yīng)的值。
include<stdio.h>
void main()
{
int x,y;
scanf("%d",&x);
if(x<1)
y=x;
else
if(1<=x<10)
y=2x-1;
else
y=3x-11;
printf("x=%d,y=%d",x,y);
}
7.此題過長(zhǎng)就不打出來(lái)了,跟第6題相似,弄懂第6題,此題迎刃而解。
8.給出一個(gè)百分制成績(jī),要求輸出成績(jī)等級(jí)A,B,C,D,E。90分以上為A,8089分為B,7079分為C,60~69分為D,60分以下為E。
include<stdio.h>
int main()
{
int score;
printf("輸入學(xué)生的成績(jī):\n");
scanf("%d",&score);
if (score<0 || score>100){
printf("輸入的數(shù)據(jù)非法!\n");
}
else{
if(score>90){
printf("該同學(xué)的等級(jí)為:A");
}
if(score>=80 && score<=90){
printf("該同學(xué)的等級(jí)為:B");
}
if(score>=70 && score<=79){
printf("該同學(xué)的等級(jí)為:C");
}
if(score>=60 && score<=69){
printf("該同學(xué)的等級(jí)為:D");
}
if(score>=0&&score<=59){
printf("該同學(xué)的等級(jí)為:E");
}
}
return 0;
}
給出一個(gè)不多于5位數(shù)的正整數(shù);
(1)求出它是幾位數(shù);
(2)分別輸出每一位數(shù)字;
(3)按逆順序輸出各位數(shù),例如原有數(shù)為123,應(yīng)輸出321
include<stdio.h>
main()
{
long num;
printf("輸入一個(gè)不多于5位的整數(shù):\n");
scanf("%ld",&num);
int place;
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("\n%d是%d位數(shù)\n",num,place);
int ten_thousand,thousand,hundred,ten,indiv;
ten_thousand=num/10000;
thousand=(num-ten_thousand*10000)/1000;
hundred=(num-ten_thousand*10000-thousand*1000)/100;
ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);
printf("\n分別打印出每一位數(shù)字和逆序輸出:\n");
switch(place)
{
case 5:printf("%d\t%d%d%d%d%d\n",num,ten_thousand,thousand,hundred,ten,indiv);break;
case 4:printf("%d\t%d%d%d%d\n",num,indiv,ten,hundred,thousand);break;
case 3:printf("%d\t%d%d%d\n",num,indiv,ten,hundred);break;
case 2:printf("%d\t%d%d\n",num,indiv,ten);break;
case 1:printf("%d\t%d\n",num,indiv);break;
}
}
10.企業(yè)發(fā)放的獎(jiǎng)金根據(jù)企業(yè)的當(dāng)年利潤(rùn)決定。當(dāng)利潤(rùn)I低于或等于100000元時(shí),獎(jiǎng)金可提成10%;利潤(rùn)大于100000元,小于200000元(100000
include<stdio.h>
main()
{
long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
int c;
bon1=100000.1;
bon2=bon1+1000000.075;
bon4=bon2+2000000.05;
bon6=bon4+2000000.03;
bon10=bon6+4000000.015;
printf("請(qǐng)輸入利潤(rùn)i:");
scanf("%ld",&i);
c=i/100000;
if(c>10) c=10;
switch(c)
{
case 0:bonus=10.1;break;
case 1:bonus=bon1+(i-100000)0.075;break;
case 2:
case 3:bonus=bon2+(i-200000)0.05;break;
case 4:
case 5:bonus=bon4+(i-400000)0.03;break;
case 6:
case 7:
case 8:
case 9:bonus=bon6+(i-600000)0.015;break;
case 10:bonus=bon10+(i-1000000)*0.01;break;
}
printf("獎(jiǎng)金是%10.2f",bonus);
}
11.輸入4個(gè)整數(shù),要求按由小到大的順序輸出。
include<stdio.h>
void main()
{
int a,b,c,d,t;
printf("請(qǐng)輸入四個(gè)整數(shù):\n");
scanf("%d%d%d%d",&a,&b,&c,&d);
if(a>b)
{
t=a;a=b;b=t;
}
if(a>c)
{
t=a;a=c;c=t;
}
if(a>d)
{
t=a;a=d;d=t;
}
if(b>c)
{
t=b;b=c;c=t;
}
if(b>d)
{
t=b;b=d;d=t;
}
if(c>d)
{
t=c;c=d;d=t;
}
printf("%d%d%d%d",a,b,c,d);
}
12.有4個(gè)圓塔,圓心分別為(2,2)、(-2,2)、(-2,-2)、(2,-2),圓半徑為1。這4個(gè)塔的高度為10m,塔以外無(wú)建筑物。今輸入任一點(diǎn)的坐標(biāo),求該點(diǎn)的建筑高度(塔外的高度為0)
include<stdio.h>
main()
{
int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=-2,y3=-2,x4=2,y4=-2,x,y,d1,d2,d3,d4;
printf("請(qǐng)輸入一點(diǎn)(x,y):");
scanf("%f,%f",&x,&y);
d1=(x-x1)(x-x1)+(y-y1)(y-y1);
d2=(x-x2)(x-x2)+(y+y2)(y+y2);
d3=(x+x3)(x+x3)+(y-y3)(y-y3);
d4=(x+x4)(x-x4)+(y+y4)(y-y4);
if(d1>1&&d2>1&&d3>1&&d4>1) h=0;
printf("該點(diǎn)高度為h%d\n",h);
}