當前位置:首頁 » 編程語言 » c語言題與講解
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言題與講解

發布時間: 2022-06-19 02:24:37

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。

程序結果:

解析:

  1. *p 表示p是一個儲存地址的變數

  2. 在這個程序中當運行完p=a;時,*p為"1",*p++也為"1"

  3. *p++和*(p++)相同

  4. printf的運行順序是從左到右

  5. *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。