本文目錄一覽:
- 1、c語言簡單的題
- 2、簡單c語言題目
- 3、幾道簡單的C語言選擇題,幫忙做一下
- 4、簡單的c語言題
- 5、簡單的C語言題
- 6、C語言幾道簡單的題目
c語言簡單的題
第一題:
賦值符號”=”右邊是由常量,變數,運算符,和函數組成的表達式.A,B中第一個”=”右邊不是一個表達式.
逗號表達式形式是:表達式1,表達式2,..,表達式n;按從左到右的順序逐個求解表達式.整個表達式的值就是最後一個表達式n的值.所以C是一個逗號表達式;加一個闊號可以與周圍其他逗號區分開,在這裡不會有錯.
一條語句必須加分號,複合語句必須加中括弧.明顯D錯了.
正確選C
第二題.
自加自減運算符優先與加減運算符;
並且按自右向左順序執行,顯然–i,被先合併了.被執行了,那麼此刻i就是等於2,所以再執行-的時候變成了2-2,答案自然是A啦.哈
說明下++,–只能和變數組合,當然右邊優先.
+++,—你要怎麼拆,首先給我拆給變數,兩邊都是變數當然又是右邊優先啦
簡單c語言題目
第一題:a*=16+(b++)-(++c)等價於a=a*
(16+(b++)-(++c));
“()”優先順序最高,所以先執行:(b++),在使用b之後,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然後將按照加減的結合性.”自左向優”計算,因此16+(b++)-(++c)=14;之後
執行a*(16+(b++)-(++c))=28,所以a=28;
第2題:結果應該是1,因為unsigned
short類型的數值範圍是0到65535,(-
-!汗,你可找c\c++程序設計的書,那裡可以找到數據類型的數值範圍)因為int是範圍要大多,又因為signeed是以補碼形式存放,而unsigned是全部2進位位都用本身表示自己,所以
程序的輸出結果是-1;
第3題:x/y=0.5,但要自動轉換成int類型,因此x/y=0
,所以1.0+x/y的值為1.0;
第4題:x-=y-z等價於x=x-(y-z),用小學的演算法計算x-(y-z)=5,
x的值為5;
x%=y+z等價於x=x%(y+x),因為x%(y+x)=0.5,又因為x,y都為整形(int),所以x的值為0;
第5題;在此語句中printf(“#d%d\n”,(++x+y++),z+2);
#d是字元輸出,%d是輸出第一個表達式(自左向右),即是(++x+y++),先執行自增運算符++x值為4,(原理看第一題的說明),y++的值為3,所以(++x+y++)
=7,所以程序執行結果是#d7;
第6題:我覺得你這個題目是你抄錯題”a=2,b=3,c=4.5,y=1.6,”中的c應該為x,這題是這樣的,先執行(int)x=4,(int)=1,再執行(int)x%(int)y=4(注意,這裡4是float類型),在執行(float)(a+b)/2=2.5,所以此表達式的值為6.5
第7題:-
-!你有抄錯題沒有?
main()
{int
i,j,m,n;
i=8;
j=3;
m=++i;
n=j–;
printf(“%d,%d,%d,%d,i,j,m,n);}
/*覺得是printf(“%d,%d,%d,%d”,i,j,m,n);
*/
m=++i;因此m=9,這裡i為9,這個容易理解(第一題);j第一次執行的時候n=j–,這裡n=3,j=3;到第2次執行J的時候,即是執行printf(“%d,%d,%d,%d,i,j,m,n)語句,這裡的j就為2
因此執行結果為:9,2,9,3
第8題:因為abC是真,在C中都用數值1表達真,0表達假,所以m=1,所以表達式m=abc的值是1;
第9題:又抄錯題?-
-!「b=2」?
先執行!,在執行關係運算符,ab為真,ca為假,ab為假,在執行邏輯運算符abca為假,abca‖abca‖ab為假,所以abca‖ab的值是0;
第10題:答案肯定為0;”設a=3,b=4,c=5,則表達式!(x=a)(y=b)0的值是”這題你做的出請告訴我,我也不會。(但可以敢肯定的是他的值為0,因為這個表達式的後面那個數據為0)如果將這題這樣改寫的話「10.設a=3,b=4,c=5,則表達式!(c=a)(c=b)0的值是」,我就有感覺怎做,首先(c=a)為假,!(c=a)為真,(c=b)為假,!(c=a)(c=b)為假,!(c=a)(c=b)0為假,即是0;
幾道簡單的C語言選擇題,幫忙做一下
1、
為表示關係x≥y≥z,應使用C語言表達式
(A)2、
執行下面程序段
(B)3、
若有以下定義:
float
x;
int
a,b;
則正確的switch
語句是
(C)4、
能正確表示a和b同時為正或同時為負的邏輯表達式是(D)5、
選擇出合法的判斷a和b是否相等的if語句(C)6、
已知
int
x=10,y=20,z=30,則執行(如果那些語句是在if裡面的話,那就選A,如果不是,那就選B)7、
運行下面程序後,輸出是(B)8、
執行下列程序後的輸出結果是(D)9、
如果c為字元型變數,下面________可以判斷c是否為空格(A)10、
如果c為字元型變數,判斷c是否為空格不能使用(C)
簡單的c語言題
你原來的程序
#includestdio.h
#includestring.h
typedef struct{char name[9];char sex;float score[2];}STU;
void f(STU a)
{
STU b={“Zhao”,’m’,85.0,90.0}; int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i2;i++) a.score[i]=b.score[i];
}
main()
{ STU c={“Qian”,’f’,95.0,92.0};
f(c);//c傳遞的是c的值,而不是c的地址,值是不能被賦值的,所以不管函數里發生什麼變化,c的值都不會變
printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);
}
我把程序改成這樣的話
#includestdio.h
#includestring.h
typedef struct{char name[9];char sex;float score[2];}STU;
void f(STU *a) //*a定義的是接收地址的指針
{
STU b={“Zhao”,’m’,85.0,90.0}; int i;
strcpy((*a).name,b.name);
(*a).sex=b.sex;
for(i=0;i2;i++) (*a).score[i]=b.score[i];
}
main()
{ STU c={“Qian”,’f’,95.0,92.0};
f(c);//這裡是把c的地址傳進函數,所以c會被改成函數里的值
printf(“%s,%c,%2.0f,%2.0f\n”,c.name,c.sex,c.score[0],c.score[1]);
}
這個輸出就是:Zhao,m,85,90
希望能幫到你,可以加我,繼續為你解答
簡單的C語言題
第一題:a*=16+(b++)-(++c)等價於a=a*
(16+(b++)-(++c));
“()”優先順序最高,所以先執行:(b++),在使用b之後,使b加一,因此(b++)=3;(++C),在使用c之前,使C加一,因此(++C)=5。然後將按照加減的結合性.”自左向優”計算,因此16+(b++)-(++c)=14;之後
執行a*(16+(b++)-(++c))=28,所以a=28;
第2題:結果應該是1,因為unsigned
short類型的數值範圍是0到65535,(-
-!汗,你可找c\c++程序設計的書,那裡可以找到數據類型的數值範圍)因為int是範圍要大多,又因為signeed是以補碼形式存放,而unsigned是全部2進位位都用本身表示自己,所以
程序的輸出結果是-1;
第3題:x/y=0.5,但要自動轉換成int類型,因此x/y=0
,所以1.0+x/y的值為1.0;
第4題:x-=y-z等價於x=x-(y-z),用小學的演算法計算x-(y-z)=5,
x的值為5;
x%=y+z等價於x=x%(y+x),因為x%(y+x)=0.5,又因為x,y都為整形(int),所以x的值為0;
第5題;在此語句中printf(“#d%d\n”,(++x+y++),z+2);
#d是字元輸出,%d是輸出第一個表達式(自左向右),即是(++x+y++),先執行自增運算符++x值為4,(原理看第一題的說明),y++的值為3,所以(++x+y++)
=7,所以程序執行結果是#d7;
第6題:我覺得你這個題目是你抄錯題”a=2,b=3,c=4.5,y=1.6,”中的c應該為x,這題是這樣的,先執行(int)x=4,(int)=1,再執行(int)x%(int)y=4(注意,這裡4是float類型),在執行(float)(a+b)/2=2.5,所以此表達式的值為6.5
第7題:-
-!你有抄錯題沒有?
main()
{int
i,j,m,n;
i=8;
j=3;
m=++i;
n=j–;
printf(“%d,%d,%d,%d,i,j,m,n);}
/*覺得是printf(“%d,%d,%d,%d”,i,j,m,n);
*/
m=++i;因此m=9,這裡i為9,這個容易理解(第一題);j第一次執行的時候n=j–,這裡n=3,j=3;到第2次執行J的時候,即是執行printf(“%d,%d,%d,%d,i,j,m,n)語句,這裡的j就為2
因此執行結果為:9,2,9,3
第8題:因為abC是真,在C中都用數值1表達真,0表達假,所以m=1,所以表達式m=abc的值是1;
第9題:又抄錯題?-
-!「b=2」?
先執行!,在執行關係運算符,ab為真,ca為假,ab為假,!cb為假,在執行邏輯運算符abca為假,abca‖ab為假,abca‖ab!cb為假,所以abca‖ab!cb的值是0;
第10題:答案肯定為0;”設a=3,b=4,c=5,則表達式!(x=a)(y=b)0的值是”這題你做的出請告訴我,我也不會。(但可以敢肯定的是他的值為0,因為這個表達式的後面那個數據為0)如果將這題這樣改寫的話「10.設a=3,b=4,c=5,則表達式!(c=a)(c=b)0的值是」,我就有感覺怎做,首先(c=a)為假,!(c=a)為真,(c=b)為假,!(c=a)(c=b)為假,!(c=a)(c=b)0為假,即是0;
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:
ch0
ch9
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;i5;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;i10;i++)scanf(“%d”,a[i]);D:for(i=0;i10;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]
原創文章,作者:ELYX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149551.html