㈠ c語言選擇題一個,求詳解
A 是對的,換行會看的更加清晰。
#define size 10 //把size的宏定義為10
char str1[size]的意思就是char str1[10]
char str2[size+2]的意思就是char str2[12]
B,char str[];裡面應該要放入具體的容量,比如 char str[10];
C,int num['10']是錯誤的,int num[10]是對的。
D是錯誤的,C語言不允許這種寫法,不允許定義的變數出現在數組里,因為變數值的改變,就會導致數組的破壞,這樣會破壞程序的健壯性。
㈡ C語言題目,求詳解
C.*p3=getchar(); 不能正確賦值。
因為p3雖然是指向char的指針,但是它並沒有指向可使用的char單元。
㈢ C語言題及講解
循環 i 從1,到2
f(1) = 1
f(2) = f(2-1) + 1 = 2
j = f(1) + f(2) = 3
㈣ c語言選擇題,詳解
6、5、下面定義了一個日期結構date、結構變數date1和date2
struct date{
int year;
int month;
int day;
}date1={2000,1,1},date2;
對結構變數date2正確操作的語句是
A、date2=date1;
B、strcpy(date2,date1);
C、date2={2010,12,1};
D、date2={2010-12-1};
你的回答: C (×) 參考答案:A
7、下面定義了一個日期結構struct date
struct date{
int year;
int month;
int day;
}date1;
結構類型佔用的內存空間可用sizeof來計算,正確的sizeof格式是
A.sizeof(date1)
B.sizeof(struct date)
C.sizeof(struct date date1)
D.sizeof(date)
A、A正確
B、B正確
C、A和B都正確
D、C和D都正確
你的回答: D (×) 參考答案:C
8、下面定義了一個日期結構struct date
struct date{
int year;
int month;
int day;
}date1;
該結構類型佔用的內存空間是多少位元組
A、6
B、9
C、12
D、15
你的回答: A (×) 參考答案:C
9、下面定義了一個平面點結構struct point、結構變數point1和結構指針p
struct point{
double x;
double y;
}point1,*p=&point1;
欲將點(100,100)賦值給point1,則不正確的操作語句是
A、point1.x=100;point1.y=100;
B、*p.x=100;*p.point1.y=100;
C、(*p).x=100;(*p).point1.y=100;
D、p->x=100;p->y=100;
你的回答: D (×) 參考答案:B
10、關於嵌套結構的定義描述,正確的是:
A、在定義嵌套的結構類型時,必須先定義成員的結構類型,再定義主結構類型
B、在定義嵌套的結構類型時,必須先定義主結構類型,再定義成員的結構類型
C、在定義嵌套的結構類型時,成員的結構類型和主結構類型的先後順序無關緊要
D、以上描述都不正確
你的回答: B (×) 參考答案:A
㈤ C語言選擇題,求詳解
應該選B。
程序結果:
解析:
*p 表示p是一個儲存地址的變數
在這個程序中當運行完p=a;時,*p為"1",*p++也為"1"
*p++和*(p++)相同
printf的運行順序是從左到右
*p++是把*p存儲的地址+1,而p的存儲地址是數組的第一個,所以相當於把p的指針往後移一位,也就是說把p指向的數組的位置往後移一位。所以就是321
㈥ C語言題,詳解
main中首先定義整型a=3然後要求輸出fun(a+fun(d)),這里要先計算fun(d)。當計算fun(d)時,d的值是開頭定義的1,就相當於fun(1),帶入fun()中計算,然後遇到靜態變數申明賦值d=5,然後d+=p,這個時候d+=1,d=6,然後輸出d的值就是6,並返回這個6,這是fun(a+fun(d))就變成了fun(3+6)就是9,然後計算fun(9),這時的d是屬於fun的局部靜態變數,並且不會再次初始化,那麼d就是上次退出fun時的值6,然後d=9+6=15,再次輸出15,並且返回15,這時fun(a+fun(d))的值就出來了,就是15,總共在函數fun中輸出了兩次,1次是6,1次是15,然後再main中1次輸出15,答案就是61515
希望能幫到你
㈦ C語言 程序分析題 求詳解
這個程序應該是把
十進制數
轉換成
二進制數
輸出
#include
//
頭文件
void
main()
{
int
a,b[10],c,i=0;
//
a存儲待轉換的十進制數,b[10]存儲轉換後的二進制位,
//
c
是存儲
余數
,
printf("輸入一個整數\n");
scanf("%d",&a);
//
輸入需轉換的十進制數
while(a!=0)
//
只要a不為零,就繼續轉換
{
c=a%2;
//
把a除以2
的余數賦值給c
a=a/2;
//
把商存入a進行下一次循環
b[i]=c;
//
把余數存到數組中作為二進制中的一位
i++;
}
for(;i>0;i--)
printf("%d",
b[i-1]);
//反向輸出余數,即得到二進制
例如輸入4
因為4
!=
0
4
/
2
=
2((商=a)...........0(余數=c=b[0])
因為2
!=
0
2
/
2
=
1((商=a)...........0(余數=c=b[1])
因為1
!=
0
1
/
2
=
0((商=a)...........1(余數=c=b[2])
因為
0
=
0
結束循環輸出
b[2]
b[1]
b[0]
即
100,也就是二進制的
4
㈧ C語言題。求詳解
++a
先a自增1,然後賦值;a++
先賦值,
然後自增1
b=(++a)+(a++)+(++a)此時a先自增1為9即a=9,
=9+(a++)+(++a)下步a++
先賦值為9算
然後a自增1,就是a=9先運算在變成a=10
=9+9+(++a)此時a=10
做下步時
++a時
a先自增1
為11,且此時a=11
=9+9+11
=29
㈨ 一些c語言題求詳解
2.A(d的類型不變)
3.B(\t a \017 b c)
4.C(取整7/3=2)
6.C(%d對應int型a,%lf對應doublr型b)
7.D(一般會輸出0)
8.D(注意scanf要等CR才生效,而getchar不等待CR)
㈩ c語言題目求詳解
這是一個數組的初始化代碼,第一個空代表的是數組的第二行第三列的數據,直接就是取默認值1。