㈠ c語言簡答題
C語言中的保留字也就是關鍵字``是C語言自帶的,程序員自己命名標識符時不能使用保留字.C語言使用ASIC II(美國信息標准化字元集)來表示喚拆或字元,其程序結構和C++,JACA等一樣有選擇,循環,分支等常用結構.計算機是不能執行C語言源程序的,必須先要使用編譯器使源程序編譯成御轎目標代碼,再使用連接程序使之成為可執行程序才能運行.目和伍前編程語言主要分為四代,第一代就是機器語言,特點是執行效率高,但對程序員要求高,移植性很差;第二代是符號語言,也就是常說的匯編語言,特點跟第一代差不多,對程序員要求就低了些;第三代就是現在常用的C,C++,JAVA,VB等高級語言,特點是對程序員要求低,不用熟悉機器的硬體,移植性好.第四代目前正在研究中吧,好像稱為人工智慧語言.
以上是個人觀點,有什麼錯誤之處請不要見怪.
㈡ C語言題目簡答題
1、(c>=65 && c<=90)?(c=c+32):(c=c) /*符合你的要求,不是C語句,而是C表達式*/
2、a%10==5 /*符合你的要求,不是C語句,而是C表達式*/
3、【題目不全啊】
4、【題目不全啊】
5、這個題算是所有6個題中最難的了。
首先,fun函數中定義了一個static類型的變數,含義如下:
有時希望函數中的 局部 變數的值在函數調用結束後不消失而保留原值,即其佔用的存儲單元不釋放,在下一次該函數調用時,該變數已有值,就是上一次函數調用結束時的值。這時就應該指定該局部變數為「靜態局部變數」,用關鍵字static進行聲明。
這道題還有一個迷惑點是,該程序還在「文件包含」命令下面定義了一個全局變數,變數名同樣也是d。全局變數(或全程變數)可以為本文件中其它函數所共用,其有效范圍從定義變數的位置開始,到本源文件結束。
這里要注意,這兩個d雖然名字相同,但他們不是一個變數,兩者地址不同,即佔用的存儲單元不一樣。
要解決這道題,你還應該了解:一個C程序總是從main函數開始執行的,而不論main函數在整個程序中的位置如何(main函數可以放在程序最開頭,也可以放在程序最後,或在一些函數之前,或在另一些函數之後)。
上面的問題清楚之後,下面就容易了。先執行main函數,第一句
int a=1;
定義了整型變數a並賦初值為1。然後調用輸出函數
printf("%5d\n",fun(a+fun(d)));
這里,printf函數的輸出列表中調用了fun函數,而fun函數中的參數是一個表達式a+fun(d),這個表達式中也有fun函數,其參數是d,這里,這個d 作為實參,必定是在「文件包含」命令下面定義的全局變數d,即先執行了fun(1)。
好,我們看看執行fun(1)是什麼效果。首先形參p得到了實參的值1,然後
static int d=5;
定義了一個局部靜態變數d, 並初始化為5,然後
d+=p;
就相當於「d=d+p;」,即d=5+1,d的值為6,然後
printf("%5d",d);
輸出了當前局部靜態變數d的值6,然後
return d;
即函數返回值為6,main函數中fun(d)就可以用數字6代替,a+fun(d)就是7了。
然後又調用了一次fun函數,fun(a+fun(d)),即fun(7)。
好,我們繼續看這時函數應該如何調用。還是形參p得到了實參值7,然後
static int d=5;
由於fun函數里的d是靜態變數,在第一次調用該函數時d已經被定義,系統已經為它分配了存儲存單元,所以,這次再調用fun函數的時候,d不用再定義了,而且保留上次的值6,也就是說,這次的「d=5」是不會被執行的。繼續,
d+=p;
即d=d+p,也就是6+7,這次fun函數里的局部靜態變數d的值為13,
printf("%5d",d);
輸出d的值13,然後
return d;
fun函數返回值為13。回到main函數,fun(a+fun(d))即可用13 來代替,然後
printf("%5d\n",fun(a+fun(d)));
輸出13,換行,程序運行結束。
分析完執行過程,這個題的答案就有了。由於printf函數中寫在%和d之間的整數代表輸出欄位寬度為5(如果數據的位數小於5,則左補空格,若大於5,則按實際位數輸出),fun函數的printf函數的格式控制字元串中沒有換行符'\n',所以最終輸出結果應該只有一行:
6 13 13
press any key to continue
要注意,6前面有4個空格,6和第一個13之間有3個空格,兩個13之間也有3個空格,第二個13後面什麼都沒有直接換行。最後的「press any key to continue」是Visual C++ 6.0系統自動生成的,提示程序已經運行完畢,按任意鍵退出。
6、Visual C++ 6.0 或 Turbo C++ 3.0
艾瑪,打這么多字累屎了。。。。。。
㈢ c語言簡答題
簡單歸納:一個程序除了數據結構,剩下的就是演算法。
演算法包含整合程序執行的步驟,是有限的,確定性的,完成某項功能所需的流程步驟。正者
選擇不同的演算法完成同一個功能,舉晌薯執行效率會有高低。就像我們計算式子,一步步推謹耐,和直接套用公式就是不同的演算法。
㈣ C語言簡答題1
5
5
1
main
(
)
{
int
x
,
y=1
,
z;
if
(
y
!=
0
)
x=5;
/腔鍵/y!=0
返回成功
故x
=5
printf(「擾圓褲\t%d\n」
,
x);
//輸出
5
if
(
y
=
=0
)
x
=
4;
//y==0返回失敗
else
x
=
5;
//執行
x
=5
printf(「\t%d\n」
,
x);
//輸出
5
x
=1;
//賦值
if
(
y
<
0)
//這里太亂緩簡了
下次注意格式
if(
y
>
0)
x=4;
else
x
=
5;
printf(「\t%d\n」
,
x);
}
㈤ C語言簡答題目
其它的的樓上一樣,就是3,5的答案錯位了。直接就給答案啊。。。
1、6 13 13 /*(註:6前面4個空格,每個13前面各三鬧掘個空格)*/
3、31; 這個你注意case語句後面是沒有break的,所以當i=1;case1以下的語句都執行一遍此時a=8;i=2:a=16;i=3:a=26;i=4:a=26+5=31
5、24;這里主要時棚彎清要注意p[i]%2這個條件,當p[i]%2=0時,while循環也就終止了,所以只有11+13=24;
7、c = (c>='A' && c<='Z'鏈前) ? (c+=32) : c
8、m=n%10==5?1:0; /*如果n的個位是5則m=1,否則等於m=0;*/
9、m = (x >= y) ? x : y
10、
switch((int)m){
case 1: k=1; break;
case 2: k=2; break;
case 3: k=3; break;
case 4: k=4; break;
/* default: printf("error"); break;*/
}
㈥ c語言簡答題
預處理和函數定義不屬於可薯手執行語句,它只是在編譯時分配相應的內存單元而已. 執數塌嫌行語句指對內存數據進行某種操作的語句.
結構衫春化程序是指針對要解決的問題,在腦子中想出方法,根據方法、思路一步步按順序編程,從而解決問題.它是一種思想,對「以對象為基礎」的設計思維相對應。
㈦ c語言3道簡答題: 1:什麼是循環的過程 2:常用的選擇結構有什麼 3:break和continue的區別
1.循環過程就是反復執行某個或某些操作直至條凳渣判件為假或為真才停止的一個過程
2.常用的選擇結構有if····else···;switch;
3.break是跳出循環也就是結束整個循環體,執棗改行循環體後的語句梁野;continue是結束循環中的單次循環從而進入循環體的下一次循環,還在循環體中。
㈧ c語言的簡答題!求高手解答
1 C 外部extern
2 A 函數中有遞歸函數 void型函數為無返回值函數 C語言程序有函數體組成 main函數 到各個子函數等
3 D 數組名做形參傳的是數組首地址 B C不解釋 被調函數在主調之前可以不聲明
4 D
5 D
6 B
7 B static 可以修飾任意位置變了 全局和靜態變態存在數據區 初值為0
8 B
9 A static修飾局部變數後存在數據區 不在存放在棧區, 全局被修飾後不能被其他文件引用變小作用域 全局和靜態變數初值為0
10 D
全手打
㈨ C語言程序設計,簡答題,求正解啊.
1.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
inta=1,b=0;
switch(a){
//switch選擇語句,a=1,那麼就選擇case1執行.
case1://注意此處case1沒有break,所以後面的case2也執行.
switch(b){
//switch選擇語句,b=0,那麼就選擇case0執行.
case0:printf(「0」);break;
//執行case0,輸出0,它有break終止語句,所以後面的case2就不執行了.
case1:printf(「1」);break;
}
case2:printf(「2」);break;
//執行case2,輸出2.
}
}
//總的輸出結果:02
//知識點:理解選擇分支結構,case遇到break才會終止後面的執行.
2.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
inta=3,b=2,c=1;
//a、b、c的作用域在main函數內.
{
intb=5,c=12;
//b、c的作用域在{}內.
c-=b*2;
//此時b、c調用的值是{}內的b=5、c=12,那麼c=12-5*2=2
a+=c;
//此時的a是調用的main函數的a=3,c調用的是c=2.即結果a=3+2=5.
}
printf(「a=%d,b=%d,c=%d 」,a,b,c);//此時a、b、c都是調用的main函數內的變數,a有經過操作,a=5,b、c沒有經過操作,b=2,c=1.
}
//總的輸出結果為:a=5,b=2,c=1
//知識點:考查變數的作用域,記住自動變數的作用域只在{}內,超出作用域就不生效了.
3.以下程序的輸出結果是什麼。
#include<stdio.h>
intmain(void)
{
intx=1,y=2,z=2;
if(x)z+=1;
//x>0為真,執行z+=1;z變為3
if(!y)z+=2;//!y<0為假,不執行.
if(z)z+=3;
//z>0為真,執行z+=3;z變為6
printf("%d ",z);
//輸出6
return0;
}
//總的輸出結果為:6
//知識點:對if語句的判斷條件,真執行、假不執行.
4以下程序的輸出結果是什麼。
#include<stdio.h>
intmain(void)
{
inta=3,b=4,c=5,d=6;
if(a>b)
//a>b為假,所以後面的語句不執行.
if(b>c)printf("%d",c);
elseprintf("%d",b);
//注意這里,else總是與上面的if匹配.
printf("%d ",d);
//輸出d=6,沒有經過任何語句操作.
return0;
}
//總的輸出結果:6
//知識點:else總是與最近的if匹配.
5.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
ints,t,a,b;
a=2;b=4;
s=t=1;
if(a>0)s+=1;
//a>0為真,執行s+=1;s變為2
if(a>b)t=s+t;//a>b為假,所以執行else語句,else為if下面的第一個,最近的.
else
if(a==b)t=5;
//執行if(a==b)不成立,所以執行else語句,else為if下面的第一個,最近的.
elset=2*s;
//執行t=2*s;即t=2*2=4.
printf(「%d 」,t);
}
//總的輸出結果為:4
//知識點:else總是與最近的if匹配.(if找它下面的第一個else,else找它上面的第一個if,前提是if、else沒有括弧()限制優先順序)