1. c語言選擇題解釋 急 44
答案選D(8 9 10)
子函數中變數a是主函數x值傳遞過來的值,每次都是3,
變數b是子函數中的自動動態變數,每調用此函數都重新定義並初始化,b++後,每次都是1
變數c是子函數中的靜態局部變數,只在第一次調用時定義並賦初值3,之後即使其子函數被調用後銷毀,它也不會銷毀,而且此子函數再被調用時,該靜態變數不再被重新定義及賦初值,故其值連續地被保持,每一次調用經++後為4,第二次為5,第三次為6
故第一次輸出1+3+4=8
第二次輸出1+3+5=9
第三次輸出1+3+6=10
2. C語言的4個選擇題,幫忙解釋一下答案,謝謝!
第一題:
c=getchar()表示計算機獲得一個輸入的字元並把它賦給int型的c(在1~256之間int和char可以相互賦值).首先接收字元2,把2賦給c,while(c=getchar())!='\n')表示只要輸入的字元不是enter鍵就執行while裡面的循環體。 而
switch(c-『2』)
{
case 0:
case 1: putchar(c+4);
case 2: putchar(c+4);break;
case 3: putchar(c+3);
default: putchar(c+2);break;
}
的執行過程是這樣的:首先計算『c'-2的值,只要該值與下面的那個case 後的表達式相同就執行其後的語句,比如說讀入的第一個字元2,2-2=0,此時執行case 0 後面的語句,而case 0與case 1後面的語句是同一個語句,所以執行 putchar(c+4);輸出6,由於
case 1: putchar(c+4);後面沒有break;語句,所以繼續執行其後語句,直到遇到break語句或執行完所有語句為止,為此第二個也輸出6,因為case 2後有break語句,所以結束第一次循環,之後輸入的473的原理也是這樣的。
第二題:
for循環的一般形式是for(表達式1;表達式2;表達式3){循環體}表達式1相當於賦初值,其作用只有一次,而表達式2是判斷條件,只要表達式2不為0就執行循環體,執行完循環體後在執行表達式3,這是一個完整的循環,接著又判斷表達式2的值是否為零,不為零,又執行循環體,......
因為此題中i=2不等於0,所以表達式2 的值為0;因此一次也不執行。
第三題:
參閱第二題解析。
第四題:
*p=&x[1][1];表示把元素5的地址賦給了指針p;
for(i=0;i<4;i+=2)printf("%d ",p[i]);
第一次,i=0;輸出p[1][1],第二次i=2,此時使p向後移動兩個元素,因此輸出3
3. 幾道C語言基礎的選擇題,求解釋,謝謝。
1、首先我們知道宏只是簡單的字元替換,那麼宏NUM實際就等價於
(N+1+1)*N+1/2,再等價於(2+1+1)*2+1/2,然後要注意優先順序的問題,NUM=8,那麼循環就是1~8。
2、A、*p //就是a[0]
B、a[10] //這樣就越界了,數組元素只有a[0]~a[9]
C、*a //就是a[0]
D、a[p-a] //就是a[0]
3、我們知道字元數組是以數字0(也就是'\0')為結束標識的。p指向的是字元數組第一個元素'H',那麼p+1指向'e',p+2指向'l',p+3指向'l',p+4指向'o',p+5指向'\0'。
3、A、p+=2,*(p++) //p指向元素1,p+=2後p指向元素3,p++:先使用再自增,則*(p++)就是3
B、p+=2,*++p //++p先自增再使用,則*++p是4
C、p+=3,*p++ //p+=3後p指向元素4
D、++*p //值為2
4、strcpy(s1,s2)將s2復制到s1並返回s1,即之後s1與s2內容是一樣的,strlen取長度值為4。
5、 A、scanf("%d%s",&p->num,p->name);
B、scanf("%d%s",&p->num,&p->name);
C、scanf("%d%s",&p.num,p.name);
D、scanf("%d%s",&p.num,&p.name);
以結構指針操作成員要用到成員運算符->,那麼C、D排除;scanf需要的是一個內存地址,p->num是一個整型變數,要用取地址符&;結構中成員name是一個字元數組,p->name表示的是這個字元數組的首地址,不需要再用取地址符。
4. C語言 選擇題及其詳細解釋(最好能對每一個結果進行分析)
第一題應該選D,ABC三個選項均是如果a非零,則執行語句s1,否則執行語句s2。第二題選B,因為a=1,在switch(b)的循環中輸出**0**,之後break僅僅跳出了swith(b)而沒有跳出switch(a),因此程序往下執行,從而有輸出**2**因此輸出為**0****2**選B
5. C語言函數問題,選擇題,答案及選擇理由,求詳細解釋。
A return 'A';
這個是可以的,因為char 類型在c語言里是可以與int 計算的。
B return 3.14;
這個是不可以的,答案就選B.
3.14是浮點常量。不是int,類型不匹配。
C return 0
這個是可以的,0 符合int類型數據輸出。
D return (int)3.14;
這個也是可以的,int對3.14 進行了強制類型轉化,把浮點類型轉為int類型
6. C語言 簡單問題 選擇題 麻煩解釋一下答案~~~
A k的值若沒有初始化,會有個隨機值,我們不能確定
B錯了,B僅僅是2*x,並不是2*=x
B NULL是空指針,A明顯對,C是十六進制的aa轉化為對應的ASCII值給c
VC分配多少直接給int我不知道,不過為了確保長度足夠,這題目可能就選C(int可能分配2或4個位元組,long分配4個)
7. C語言編程題,求答案+解釋,謝謝大佬
(1)這個位置,因為在主函數之外,只有一行。一般來說是#include了其他的庫,或者是#define了一些什麼,或者是前向聲明(但鑒於題目里掃視了一眼只有一個非主函數,所以不會是這個)。那我最大的傾向就是#include,接著我會直接看主函數
先學會看變數,可以看到題目里有三個變數X,Y1,Y2。和我們設置的變數不謀而合,接下來輸入X的值,直接就可以算Y1,Y2。因為剛剛記得只看到了一個外函數,而且下面兩個空是在形參上讓我們填空,我就回頭看了一眼題目,原來是函數的形式完全相同,只是改變了傳進去的參數,第一個直接傳x+8,第二個要傳sinx,那兩個答案就出來了,同時(1)的答案也出來了,因為sin()這個函數是在#include<math.h>裡面的
接著剩下最後一個空,我們看到被調函數fun裡面,這是一個返回類型float的函數,但是沒有返回值,所以我們需要return 一些什麼,很明顯這里只有一個能return的,那就是y
綜上
(1)#include<math.h>
(2)return y;
(3)x+8
(4)sin(x)
(在我寫完之後看到3分鍾前下面還有個答案,include用了""。需要說明的是,一般只有使用非庫頭文件,也就是自定義的頭文件時,會選擇"",這並不是一個好習慣,會不會引發報錯可以自己嘗試一下)
8. C語言 選擇題及其詳細解釋(最好能對每一個結果進行分析)謝謝!!!
第一題:while()中的該是「!」是嗎?那就是不會輸出任何東西!因為C中「非0就是1」而字母是以ASCII碼的形式存放的!所以「a」就能看做「1」而現在是「!1」當然就是0啊!所以後面的printf是不會做的啊!所以啊就要選「c」
第二題:該是B 因為「X——」是先用x的值在「——」的!也就是說先輸出再改變x的值!所以輸出還是23!故選擇B!
9. C語言選擇題(最好解釋)
len和str分別是3和9
c中字元串的長度len計算的結束標志就是遇到\0,所以就是3
字元串大小,就是整個字元串的大小了,\0也是一個字元,所以就是9