C語(yǔ)言試題
1.函數指針申明時(shí)可以不用確定參數類(lèi)型,只需要在定義和使用時(shí)帶上參數類(lèi)型即可。參考《func1.c》

main()
{
int f();
int i,a,b;
int (*p)();
scanf("%d",&a);
p=f;
for(i=1;i<9;i++)
{
printf("Please Input The %d Number:",i);
scanf("%d",&b);
a=(*p)(a,b);
}
printf("The Max Number is:%d",a);
}
f(int x,int y)
{
int z;
z=(x>y)?x:y;
return z;
}
2.數組指針與指針數組:數組指針int (*a)[10],指向數組的指針,指針數組int *a[10],包含10個(gè)指針的數組。
3.char *p1="I love you";和char p2[]="I love you";區別:字符串存放的位置不同,讀寫(xiě)屬性不同。指針p1指向的字符串位于內存的只讀區,不可改變,數組p2的字符串位于堆棧中,可讀可寫(xiě),可以改變。
4.C語(yǔ)言的extern和static是對立的關(guān)鍵字。
5.strcpy,memcpy,strcat等str函數返回值都是char *.
6.一般的,如果想讓if判斷一個(gè)變量的“真”、“假”,應直接使用if(var)、if(!var),表明其為“邏輯”判斷;如果用if判斷一個(gè)數值型變量(short、int、long等),應該用if(var==0),表明是與0進(jìn)行“數值”上的比較;而判斷指針則適宜用if(var==NULL),這是一種很好的編程習慣。
7.結構體數組和鏈表很相似,如果不需要中間插入元素,可以?xún)?yōu)先考慮用結構體數組。
8.extern "C"作用:實(shí)現在C++中調用C函數。
例如:
/*C語(yǔ)言頭文件example.h*/
#ifndef EXAMPLE_H
#define EXAMPLE_H
extern int add(int x,int y);
/*C語(yǔ)言實(shí)現文件example.c*/
int add(int x,int y)
{
return (x)+(y);
}
/*C++實(shí)現文件,調用add(),example.cpp*/
9.宏實(shí)現函數功能在參數有自增自減操作時(shí)有副作用
代碼:
#define MIN(a,b) (a)<(b)?(a):(b)
test10()
{
int x=3;
int y=8;
printf("MIN:%d\n",MIN(x++,y));
}
輸出: MIN:4
extern "C"
{
#include "example.h"
}
int main(int argc,char *argv[])
{
add(2,3);
return 0;
}
實(shí)際上extern "C"是表明下面的申明編譯時(shí)按照C語(yǔ)言的方式處理,不要做優(yōu)化,如果沒(méi)有extern "C",在C++中將會(huì )對申明的函數名處理,上例中就會(huì )是add_int_int類(lèi)似的函數名。
9.static 在函數內部,表示該變量的值在各個(gè)調用間一直保持延續性;
在函數這一級,表示該函數只對本文件可見(jiàn)
10.文件存在判斷 -access
access函數用于判斷文件權限,用F_OK模式可以判斷文件是否存在。
If(0 == access(*filename,F_OK))
文件存在時(shí)的操作
11.位寬可變的printf輸出
int i;
printf("12345678901234567890\n");
for(i=10;i>0;i--)
pirntf("%*s",i,"*\n");
12.程序在內存中的分段
存儲態(tài):
代碼段:存放可執行代碼,變量和申明是不可執行的。字符串常量也存放在此。
數據段:包含靜態(tài)初始化的數據,有初值的全局變量和static變量存放在此。
BSS段:存放未初始化的全局變量和靜態(tài)變量。
運行態(tài)還有stack和heap段。stack段存放局部變量、函數形參和返回值,heap段用于內存的動(dòng)態(tài)分配。
13.C語(yǔ)言中,僅有4種基本數據類(lèi)型-整型,浮點(diǎn)型,指針和聚合類(lèi)型(如數組和指針等).
整型:字符,短整型,整型和長(cháng)整型.每一種都有有符號和無(wú)符號兩種.
14.指針和指針變量區別?
變量存儲于計算機的內存中,每個(gè)變量都占據一個(gè)特定的位置.每個(gè)內存位置都由地址唯一確定并引用,就像一條街道的房子由他們的門(mén)牌號碼標識一樣.指針只是地址的另一個(gè)名字罷了.指針變量就是一個(gè)其值為另外一個(gè)(一些)內存地址的變量.
15.指針和數組區別?
指針使用必須賦初值,數組使用可以不用賦初值;指針的地址可以輕易改變,數組的首地址不會(huì )改變。
【C語(yǔ)言試題】相關(guān)文章:
C語(yǔ)言試題08-02
C語(yǔ)言試題11-01
C語(yǔ)言程序試題04-26
C語(yǔ)言試題大全08-06
C語(yǔ)言試題及答案07-26
C語(yǔ)言練習試題07-01
c語(yǔ)言經(jīng)典筆試題10-06
C語(yǔ)言試題訓練08-07
C語(yǔ)言考點(diǎn)試題08-19