① c語言的模擬試題
1.D
2.A
3.A
4.B
5.C
6.B
7.D
8.B
9.A
10.A
11.B
12.B
13.B
14.A
15.A
② C語言試題
答案:DABAD ACCDB
11. D(十進制數如4,八進制數如04,十六進制數如0x4)
12. A(規定)
13. B(規定)
14. A(第一次輸出,先判斷4!=0,再n=n-1=3,再執行循環體,此時,先n=n-1=2,再輸出2;第二次循環,同理輸出為0)
15. D(若return了浮點型,但定義為整型,函數在返回值時要把浮型截取為整型)
16. A(條件非0即為真)
17. C(題目考查字元串常量所佔位元組數還包括一個字元串結束標志'\0',但本題題干中的int改為char更恰當)
18. C(數組a的長度為7,內容分別是字元:abcdef及'\0',而數組b的長度為6,內容:abcdef)
19. D(strlen()函數的返回值是字元串的有效長度,不算結束標志'\0',而該字元串的有效字元包括6個,分別是:'\t'(即控制字元tab),'x','y','z','\\'(即字元\)'\n'(即控制字元換行))
20. B(當i=0時,x++得1,進入內層for循環,該循環功能是j為奇數時x加1,所以當j=1及3時x自增了共兩次,此時x得3,然後又x++得4,第二次大循環即當i=1時,同理,x的值又增了4,最終得8)
③ 一些C語言求職筆試題2
19、一個隊列入列順序是1,2,3,4,則輸出順序是
a、4321b、1234c、1432d、3241
隊列是先進先出的,所以答案是B、1234
20、若進棧順序為1,2,3,4,假定進棧和出棧可以穿插進行,
則可能的出棧順序為:
a、2413b、3142c、3412d、1234
答案是:D。分析過程如下:
A,第一個為2第二個為4,可以確定棧中是3,1所以應該是2431
B,第一個為3,則棧中2,1。第二個可能是24,但肯定不是1
C,第一個為3,第二個為4,則棧中是2,1,所以應該是3421
D,由於進棧和出棧可以穿插進行,所以1進,1出,2進,2出,3進,3出,4進,4出。
21、演算法的空間復雜度指
a、演算法程序的長度
b、演算法程序的指令條數
c、演算法程序占的存儲空間
d、演算法執行過程中所需的存儲空間
答案是D,因為,空間復雜度指的就是:程序執行過程中由於需要,所申請的內存空間。
22、某數列有1000個各不相同的單元,有低到高排列,要對該數進行二分法檢索
,最壞的情況下,需要檢查多少個單元
a、1000b、10c、100d、500
答案是B,
因為,因為2^9=512,不夠檢索完1000個,
那麼:2^10=1024,就夠檢索完1000個了。
二分查找次數以2為基數,2的10次方為1024,
完全可以查找到,所以最多隻需要10次即可。
23、已知數組A中,每個元素A[I][J]在存儲時要佔3個位元組,設I從0變到4,
J從0到9,分配內存從地址SA開始連續按行存儲分配的。問:A[4][7]的起始地址為:
a、SA+84b、SA+99c、SA+120d、SA+141
答案是D,
因為,數組的首個元素也就是數組的首地址是A[0][0],
那麼A[4][7]就是第5行的第8列,一個元素3個位元組,
那麼一行(J最大為9,就是10列)10*3=30個位元組,
前4行4*30=120,再加上7個7*3,
結果就是:4*10*3+7*3=141。24、使用雙向鏈表存放數據的優點是
a、提高檢索速度b、方便的插入和刪除數據
c、節約存儲空間d、很快回收存儲空間
答案是B,因為,
鏈表優點:
1)插入和刪除元素不需要移動其餘元素,效率高;
2)不要求連續空間,空間利用效率高
鏈表缺點:
1)不提高隨機訪問元素的機制
2)查找元素和搜索元素的效率低
25、若某鏈表最常用的操作是在最後一個結點之後插入一個結點並刪除最後一個
結點,則採用____存儲方式最省時間
a、單鏈表
b、雙鏈表
c、帶頭節點的雙循環鏈表
d、單循環鏈表
答案是C,因為,
雙循環鏈表能夠通過頭結點的前驅就是尾結點,能夠迅速找到尾結點,然後進行插入和刪除操作
26、在理想情況下,散列表中查找元素所需比較次數為:
a、nb、0c、n/2d、1
答案是D,因為,
散列方法不同於順序查找、二分查找、二叉排序樹及B-樹上的查找。
它不以關鍵字的比較為基本操作,採用直接定址技術。
在理想情況下,無須任何比較就可以找到待查關鍵字,查找的期望時間為O(1)。
27、Ethernet屬於數據鏈路層協議
答案是正確的。因為:
數據鏈路層的主要協議有:
(1)Point-to-PointProtocal;PPP點到點
(2)Ethernet;乙太網
(3)High-LevelDataLinkControlProtocal;HDLC高級鏈路控制協議
(4)FrameRelay;幀中繼
(5)AsynchronousTransferMode;ATM
28、普通交換機和路由器工作在
a、數據鏈路層和傳輸層
b、鏈路層和網路層
c、都是網路層
d、網路層和傳輸層
答案是B,因為,
交換機主要工作在數據鏈路層(第二層)
路由器工作在網路層(第三層)。29、乙太網的MTU值為
a、500b、1492c、1500d、1982
答案是C,因為
最大傳輸單元MTU=1500是國際規定的默認值,
是一個經過實驗得到的可以最大效率傳輸數據的值。
倘若大於1500,數據傳輸速度就會變慢;
若小於1500,鏈路又得不到充分利用,減小了效率。
30、在一個WindowsSDK的基本應用程序框架中,有如下消息循環:
while(GetMessage(&Msg,NULL,0,0){
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
下面哪個消息使得該消息循環退出運行,從而終止整個應用程序的運行
a、WM_DESTROY b、WM_QUITc、WM_CLOSR d、WM_CREATE
答案是B,因為
WM_CLOSE:關閉應用程序窗口
WM_DESTROY:關閉應用程序
WM_QUIT:關閉消息循環
只有關閉了消息循環,應用程序的進程才真正退出(在任務管理器里消失)。
31、進程和線程最主要的區別:
a、CPU調度方式不同b、優先順序不同
c、程序入口不同d、進程有獨立的地址空間,線程共享地址空間
答案是D,
進程和線程的主要差別在於它們是不同的操作系統資源管理方式。
進程有獨立的地址空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,
而線程只是一個進程中的不同執行路徑。
線程有自己的堆棧和局部變數,但線程之間沒有單獨的地址空間,
一個線程死掉就等於整個進程死掉,所以多進程的程序要比多線程的程序健壯,
但在進程切換時,耗費資源較大,效率要差一些。
32、以下哪項不適合用於進程間通訊
a、socketb、Pipec、共享內存d、全局變數
答案是D,
Windows中進程間通信方式有:
File,管道(Pipe),命名管道(namedpipe),信號(Signal),消息隊列(Messagequeue),
共享內存(sharedmemory),內存映射(memory–mappedfile),信號量(semaphore),
套介面(Socket),命名事件。臨界區事實上應該算是由信號量來保證的。
全局變數不能用於進程間通訊。
④ C語言試題C(速求)
一、 單項選擇題(共20分,每題2分)
1. 下列敘述正確的是__D______
A)不能使用do…while語句構成的循環
B)do…while語句構成的循環,必須用break語句才能退出
C)do…while語句構成的循環,當while語句中表達式值為非零時結束循環
D)do…while語句構成的循環,當while語句中的表達式值為零時結束循環
2. 下列描述中正確的是____A____
A)字元型數組中可以存放字元串
B)不可以對字元串進行整體輸入、輸出
C)可以對整型數組進行整體輸入、輸出
D)可以在賦值語句中通過賦值運算符"="對字元型數組進行整體賦值
3. 結構化程序設計強調的是____B_____
A)程序的執行的速度 B)程序的易讀性
C)程序的經濟性 D)程序的正確性
4. 一個良好的演算法由下面的基本結構組成,但不包括___D_______
A)順序結構 B)選擇結構C)循環結構D)跳轉結構
5. 以下敘述中正確的是____C____
A)C語言是一種低級語言
B)C語言執行效率比匯編語言更高
C)C語言以接近英語國家的自然語言和數學語言作為語言的表達形式
D)C語言出現的最晚,具有其他語言的一切優點
6. 在C語言中,引用數組元素時,其數組下標的數據類型允許是___C_____
A)字元 B)數組名
C)整型常量或整型表達式 D)邏輯表達式
7. 若有下面的程序段:
char s[]="china";
char *p;
p=s;
則下列敘述正確的是___C_____
A)*p與s相等
B)p與s[0]相等
C)p與s相等
D)*p與&s[0]相等
8. 在C語言中,不正確的int類型的常數是____全對____
A)-32778 B)32767 C)037 D)0xAFFFF
9. 在C語言中,退格符是 D
A)\n B)\t C)\f D)\b
10. 表達式X+=Y*Z+8等價於___A_____。
A)X=X+Y*Z+8
B)X=X*Y*Z+X*8
C)X=X*Y*8+X
D)X=Y+Z+8
二、判斷題。(共10分,每題1分)
1. C語言程序的編譯單位是函數。(√ )
2. #include「stu.h」和#include <stu.h>沒有區別。(X )
3. printf函數的輸出表列參數中%d表示按整數輸出。(√ )
4. 邏輯非運算的運算符是!。(√ )
5. 在定義全局變數時,static關鍵字不能省略。( x )
6. strlen()函數的作用是拷貝字元串。(x )
7. 計算時,表達式中的條件運算符優先於賦值運算符。(√ )
8. break命令可以用來跳出當前的switch結構。( √ )
9. 字元串不能作為函數參數使用。(X )
10. register變數是在內存中劃分的。( X) ---------cpu寄存區
⑤ 求C語言基礎知識試題~急!!!
◆ 基本要求
1.熟悉 Visual C++ 6.0 集成開發環境。
2.掌握結構化程序設計的方法,具有良好的程序設計風格。
3.掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。
4.在 Visual C++ 6.0 集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力
◆ 考試內容
一、C語言程序的結構
1.程序的構成,main函數和其他函數。
2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。
3.源程序的書寫格式。
4.C語言的風格。
二、數據類型及其運算
1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。
2.C運算符的種類、運算優先順序和結合性。
3.不同類型數據間的轉換與運算。
4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。
三、基本語句
1.表達式語句,空語句,復合語句。
2.輸入輸出函數的調用,正確輸入數據並正確設計輸出格式。
四、選擇結構程序設計
1.用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的嵌套。
五、循環結構程序設計
1.for循環結構。
2.while和do-while循環結構。
3.continue語句和break語句。
4.循環的嵌套。
六、數組的定義和引用
1.一維數組和二維數組的定義、初始化和數組元素的引用。
2.字元串與字元數組。
七、函數
1.庫函數的正確調用。
2.函數的定義方法。
3.函數的類型和返回值。
4.形式參數與實在參數,參數值傳遞。
5.函數的正確調用,嵌套調用,遞歸調用。
6.局部變數和全局變數。
7.變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。
八、編譯預處理
1.宏定義和調用(不帶參數的宏,帶參數的宏)。
2.「文件包含」處理。
九、指針
1.地址與指針變數的概念,地址運算符與間址運算符。
2.一維、二維數組和字元串的地址以及指向變數、數組、字元串、函數、結構體的指針變數的定義。通過指針引用以上各類型數據。
3.用指針作函數參數。
4.返回地址值的函數。
5.指針數組,指向指針的指針。
十、結構體(即「結構」)與共同體(即「聯合」)
1.用typedef說明一個新類型。
2.結構體和共用體類型數據的定義和成員的引用。
3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。
十一、位運算
1.位運算符的含義和使用。
2.簡單的位運算。
十二、文件操作
只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。
1.文件類型指針(FILE類型指針)。
2.文件的打開與關閉(fopen,fclose)。
3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。
◆ 考試方式
1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。
2.上機:90分鍾,滿分100分
3、上機操作包括:
(1)填空。
(2)改錯。
(3)編程
推薦復習教材《C程序設計》譚浩強主編
⑥ 求c語言試題及答案!急啊!
c語言考試題(一)
一、 單項選擇題(每題2分,共20分)
1、以下選項中屬於C語言的數據類型是( )
A.復數型 B.邏輯型 C.集合型 D.雙精度型
2、一個C程序的執行是從( )
A.main()函數開始,直到main()函數結束 B.第一個函數開始,直到最後一個函數結束
C.第一個語句開始,直到最後一個語句結束 D.main()函數開始,直到最後一個函數結束
3、設有語句int a=3;則執行語句a+=a-=a*a;後,變數a的值是( )
A.3 B.0C.-12D.9
4、若有 char c[5]={'c','d','\0','e','\0'};則執行語句printf("%s",c);結果是( )。
A.cd\0e B.'c''d' C.cd D.cd e
5、已知:int a[2][3]={1,2,3,4,5,6}, (*p)[3]=a;則下列表達式不是4的是 ( )。
A.*(*p+3) B.*p+3 C.*(*(p+0)+3) D.a[0][3]
6、以下有宏替換不正確的敘述( ).
A.宏替換不佔用運行時間 B.宏名無類型
C.宏替換只是字元串替換 D.宏名必須用大寫字母表示
7、執行char str[10]=」Ch\nina」; strlen(str)的值是( )
A.5 B.6 C.7 D.9
8、下面程序的輸出結果是:( )
#define POWER(x) (x*x)
main()
{int i=4; printf("%d",POWER(i-2)); }
A. -9 B. -7 C. 5 D. -6
9、在定義int a[3][4][2];後,第10個元素是( )
A.a[2][1][2] B.a[1][0][1] C.a[2][0][1] D.a[2][2][1]
10、下面程序的輸出結果是:( )
typedef struct
{long x[2];<br>short y[4];<br>char z[8];<br>}MYTYPE;
MYTYPE a;
main()
{ printf("%d\n",sizeof(a));}
A. 2 B. 8 C. 14 D. 24
二、 填空題(每空1分,共11分)
1、字元串"A"在內存中佔用的位元組數為 。
2、C語言中的標識符只能由字母、下劃線和 組成。
3、若有定義語句「 int a=25,b=14,c=19;",以下語句的執行結果是
if(a++<=25&&b--<=2&&c++) printf("***a=%d,b=%d,c=%d\n",a,b,c);
else printf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定義a[]="B\172\\\'a%%";則執行語句printf("%d",strlen(a));的結果為 。
5、若有定義:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i; for(i=0;i<4;i++) p[i]=&a[i*3];則*(*(p+1)+2)的值為 ,*p[2]的值為 。若數組的首地址為2000,則p[1]指向的地址為 。
6、設a=2,b=3,x=3.5,y=2.5,則表達式(float)(a+b)/2+(int)x%(int)y 的結果是 。
7、設x、y都是int型變數,初值都為1,則執行表達式:--x&&y++後,y的值為 。
8、語句for(i=1;i==10;i++)continue;循環的次數是 。
9、以下程序輸出 。
main()
{enum em {em1=3,em2=1,em3};
char *aa[]={"AA","BB","CC","DD"}; printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、 寫程序結果(每題5分,共35分)
1、#include
main()
{int x,y,z;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(「%d\n」,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(「first\n」);break;<br>case 1:printf(「second\n」);break;<br>}
case 2:printf(「third\n」);
}
}
5、#include
main()
{ int k=4;
func(k); func(k);
}
func(int a)
{ static int m=0;
m+=a;
printf("%d",m);
}
6、struct st
{ int x;
int *y;
}*p;
int s[]={30,20};
struct st a[]={1,&s[0],2,&s[1]};
main()
{ p=a; printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在當前盤目錄下有2個文本文件,其名稱和內容如下:
文件名: a1.txt a2.txt
內容: ABCDEF# abcdef#
#include "stdio.h"
main()
{FILE *fp;<br>void fc();<br>if((fp=fopen("a1.txt","r"))==NULL)<br>{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Can not open file!\n"); exit(1);}
else{fc(fp);fclose(fp);}
}
void fc(fp1)
FILE *fp1;
{char c;<br>while((c=fgetc(fp1))!='#')putchar(c);<br>}
四、 程序填空(每空2分,共14分)
1、下面程序求矩陣a的主對角線元素之和,請填空。
main()
{ int a[3][3]={2,4,6,8,10,12,14,16,18};
int sum=0,i,j;
for(i=0;i<3; ① )
for(j=0; ② ;j++)
if(i= =j) sum=sum+ ③ ;
printf("sum=%d\n",sum);
}
2、下列函數coy把字元數組S2中的全部字元復制到字元數組S1中, 復制時』\0』也要復制過去,』\0』後面的字元不用。
coy(char s1[],char s2[])
{ int i;
for(i=0;s2[i]!= ① ;i++)
s1[i]=s2[i];
② ;
}
3、下面程序的功能是將字元串a中的下標為奇數的元素由小到大排序,其他元素不變,請填空。
main()
{ char a[]="students",t; int i,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8; ① )
if( ② )
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
}
c語言考試題(二)
一. 填空題(每題2分,共20分)
1. C語言基本數據類型有:_______________________________;
構造類型有:_____________________________________。 P.13
2. C語言源程序注注釋符號是:________________________________,
為表明層次結構,C語言源程序通常採用_____________________格式編寫。P.4
3. 源程序TEST.C經編譯產生的目標文件是:________________________;
經連接處理後,產生的可執行文件是:__________________________。
4. strlen(「1234 \ 0xy)的值為:_____________________________;
sizeof(float)的值為:____________________________
5. 二維數組a[10] [50]最後一行的首地址為:_________________________;
最後一個元素的首地址為:____________________________________。
6. C標准庫函數中,數學函數的原型在:________________頭文件中,自定義頭文件D :\ MYC \ MY . H應如何包含到源程序文件中:_________________________。P.130
7. 已知函數定義為:int stat(inta,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。
8. 設int x,y,z=4;
x=y=++z;
x=(y>z)?x+2;x++;則x的值是:_________;
設int a=0,b=0,c=0;c=++a | | b++; ,則a、b、c值分別是:_____________。
9. 與if (x=0) 等價的寫法是if ( ! x );
判斷兩個(float)變數x,z是否相等一般:if ( fabc(x-z)<1e-6 )。
10.已知賦值語句zhang.year=1985;可判斷zhang是_______________類型的變數;
定義文件指針的C語句是:_________________________________。
二. 單項選擇題 (每題1分,共10分)
1. 組成C程序的基本單位是____________________________。
A.函數 B.標識符 C.表達式 D.語句
2. 設int類型的數據長度為2位元組,則該類型數據的取值范圍是__________________。
A.0至65536 B.0至65535
C.-32767至32768 D.-32768至32767
3. 在C語言中,邏輯值「真」是用_____________________表示的。
A.預定義為真值的宏 B.非零數
C.正數 D.非零整數
4. C語言對於嵌套if語句規定else總是與_____________________匹配。
A.與最外層的if B.與之前最近的if
C.與之前最近的不帶else的if D.與最近的{ }之前的if
5. 數組定義char a[10]={`a`,`b`,`c`}:包括了幾個元素____________________。
A.3 B.9 C.4 D.10
6. 數組名作為實參傳給被調用的函數時,形參獲得的是_____________________。
A.該數組第一個元素的值 B.該數組所有元素的值
C.該數組第一個元素的首地址 D.該數組所有元素的首地址
7. 為表示關系x ≥ y ≥z,正確的C語言表達式為_________________________。
A.(x>=>y>=z) B.(x>=y)AND(y>=z)
C.(x>=y)&&(y>=z) D.(x>y)&(y>=z)
8. 根據定義int a[ ]={1,2,3},i,*p=a; 從語法分析_________________是不正確的。
A. a[p-a] B.*(&a) C.p D.*(*(a+i))
9. 若有語句scanf(「%d%d」,&a,&b);要使變數a,b分別得到12和34;正確的輸入形式為____________________________。
A.12 34 B.12,34 C.1234 D.12:34
10.union uex {int i;float f;char c;}ex;則sizeof(ex)的值是____________________。
A.4 B.5 C.6 D.7
三. 分析程序,寫出運行結果。(每題4分,共20分)
1. 源程序如下,運行時假定鍵盤輸入字元串為``2004``
#include
void main(void)
{
int n=0;
char c;
while( (c=getchar( )) ! =`\n` ) /*字元型數字*/
{
if (c>=`0`&&c<=`9` )
n = n*10 + c- `0` ; /*數字*/
}
printf(「value=%d|n」 ,n);
}
結果為: value=2004 。
2. 源程序如下:
#include
void main(void)
{
int num[9]={399,398,397,396,395,299,290,311,301};
int score[9]={81,85,59,77,90,66,89,93,73};
int iMax,iPos,i;
iPos=0;
iMax=score[iPos];
for(i=1;i<9;i++)
if(score>iMax)
{
iPos=i;
iMax=score[iPox];
}
printf(「num=%d,score=%d」,num[iPos];score[iPos]);
結果為: num=311, score=93 。
3. 源程序如下,運行時假定鍵盤輸入數據為:1 2 3 4 5 6 7 8 9 10
#include
void main(void)
{
int i,a[10];
int *p;
p=a;
for(i=0;i<10;i++)
scanf(「%d「,p++);
for(p=a;p< SPAN>;p++)
if (*p%2)printf(「%3d」,*p);
}
結果為: 1 3 5 7 9 。
4. 源程序如下,兩次運行,分別輸入數據13和21
#include
#include
void main(void)
{
int n,s;
scant (「%d」,&n);
s=panan( n);
if(s==1)printf(「yes\n」);
else printf(「no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) retum(1);
else retum(0);
}
結果為 yes
no
5.源程序如下,運行時假定鍵盤輸入字元為:AxByCz
#include
#include
void main(void)
{
char str[80];
int i;
gets(str);
for(i=0;str!=`\0`;i++)
if(str>=`a`&&str<=`z`) str-=32;
else if (str>=`A`&&str<=`Z`) str+=32;
puts(str);
}
結果為: aXbYcZ 。
四. 下列程序中每個劃線處有一個錯誤,改正劃線 中的錯誤,使其實現題目要求。(每體4分,共20分)
1. 求 s=1+2+3+、、、、、、、+100
include 改正為_________________________。
void sum (void) 改正為_________________________。
{
int s,i;
for (s=0,i=1;i<=100;i++)
{
s=s+ i ++; 改正為__________________________。
}
printf (「s=%f」,s) 改正為__________________________。
}
2. 源程序實現求x
#include
double pow(float . int) 改正為_________________________。
void main(void)
{
int i, n;
float x;
scanf (「%f,%d」,&x,&n);
for (i=1; i<9;i++)
printf(「%d,%e\n」, i, pow(i,x);
} 改正為______________________。
double v v pow(float x, int n)
{
int i;
double p=0; 改正為______________________。
for (i=1; i< i++)>改正為_______________________。
p*=x;
retum(p);
}
3. 源程序實現排升序。
#include
void main(void)
{
int i, j, iMin, a[10]={4,3,5,1,10,12,2,6,7,9}, iTemp;
for (i=0; i<9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正為_______________________。
if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(「%4d」, a):
}
4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; i++) 改正為____________________。
{
scanf(「%d」, p++);
sum+= *p; 改正為____________________。
}
avg = sum/ 10; 改正為___________________。
printf(「avg=%f」, avg);
}
5. 源程序求 eX=1+x+x2/2!+……+xn/n!前n+1項之和
#include
void main(void>
{
float exp , x , t;
int i, n;
scanf(「%f, %d」,&x, &n);
t=0; 改正為___________________。
exp=1.0;
for(i=1 ; i<=n; i++)
{
if(t<1e-6) loop; 改正為__________________。
t+=x/i; 改正為___________________。
exp*=t; 改正為___________________。
}
printf(「\n%15.6f」, exp);
}
五. 編程題 (每題6分,共30分)
1. 根據以下程序框架,編寫子函數,實現交換兩個整型變數x和y的值。
#include
void swap (int *, int *);
void main (void)
{
int x, y;
scanf(「%d, %d」, &x, &y);
swap( &x, &y);
printf(「%d, %d」, x, y);
}
void swap( )
{
}
2. 設某班人數36人,參加C語言考試,用一維數組score[36]存放考試成績,已給出一部分程序,完善以下程序,使其實現統計並輸出不及格人數及百分比。
#include
void main (void)
{ int i;
float scoer[36], precent;
int count=0;
for (i=0; i<36; i++)
{
scanf(「%f」, &score);
}
3. 完善以下程序使其實現由鍵盤任意輸入一串字元,統計其中大寫字母個數iA、小寫字母個數ia、其他字元個數iother。
#include
#include
void main (void)
{
char str [80];
int i, iA=0, ia=0, iother=0;
}
4. 完善以下程序使其實現求方陣主和輔對角線元素之和及其轉置矩陣,設方陣用二維數組a表示,轉置矩陣用t表示,sl和s2表示主和輔對角線元素之和。
#include
void main(void)
{
int a[3] [3]={1,3,5,7,9,11,13,15,11};
int i, j, s1, s2;
int t[3] [3];
printf(「%d, %d,\n」,s1, s2);
for(i=0; i<3; i++)
for(j=0; j<3; j++)
printf(「%3d」, t [j]);
}
5. 已知字元數組str[80],編寫返回指針的子函數,實現在其中查找字元ch首次出現的位置。
#include
#include
#include
char *lstrchar(char*, char);
void main(void)
{
char c, *p, str[80];
gets (str);
scanf(「%c」, &c);
p=lstrchar(str,c);
if(p==NULL) printf(「char %c not found\n」c);
else printf(「The position is %d」, p-str);
char 「lstrchar( )
{ }
歷年全國計算機二級考試c語言真題及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar
⑦ 一些C語言求職筆試題
1.B 2.B 3.B 4.B 5.C 6.D 7.不懂
9.A 10.C 11.D 12.C 13.D 14.B
15.不懂 16.D 17.D 18.D 19.B
C++部分我很有把握,考定義部分看自己的感覺
⑧ c語言試題
++ 6.0 集成開發環境。
2.掌握結構化程序設計的方法,具有良好的程序設計風格。
3.掌握程序設計中簡單的數據結構和演算法並能閱讀簡單的程序。
4.在 Visual C++ 6.0 集成環境下,能夠編寫簡單的C程序,並具有基本的糾錯和調試程序的能力
◆ 考試內容
一、C語言程序的結構
1.程序的構成,main函數和其他函數。
2.頭文件,數據說明,函數的開始和結束標志以及程序中的注釋。
3.源程序的書寫格式。
4.C語言的風格。
二、數據類型及其運算
1.C的數據類型(基本類型,構造類型,指針類型,無值類型)及其定義方法。
2.C運算符的種類、運算優先順序和結合性。
3.不同類型數據間的轉換與運算。
4.C表達式類型(賦值表達式,算術表達式,關系表達式,邏輯表達式,條件表達式,逗號表達式)和求值規則。
三、基本語句
1.表達式語句,空語句,復合語句。
2.輸入輸出函數的調用,正確輸入數據並正確設計輸出格式。
四、選擇結構程序設計
1.用if語句實現選擇結構。
2.用switch語句實現多分支選擇結構。
3.選擇結構的嵌套。
五、循環結構程序設計
1.for循環結構。
2.while和do-while循環結構。
3.continue語句和break語句。
4.循環的嵌套。
六、數組的定義和引用
1.一維數組和二維數組的定義、初始化和數組元素的引用。
2.字元串與字元數組。
七、函數
1.庫函數的正確調用。
2.函數的定義方法。
3.函數的類型和返回值。
4.形式參數與實在參數,參數值傳遞。
5.函數的正確調用,嵌套調用,遞歸調用。
6.局部變數和全局變數。
7.變數的存儲類別(自動,靜態,寄存器,外部),變數的作用域和生存期。
八、編譯預處理
1.宏定義和調用(不帶參數的宏,帶參數的宏)。
2.「文件包含」處理。
九、指針
1.地址與指針變數的概念,地址運算符與間址運算符。
2.一維、二維數組和字元串的地址以及指向變數、數組、字元串、函數、結構體的指針變數的定義。通過指針引用以上各類型數據。
3.用指針作函數參數。
4.返回地址值的函數。
5.指針數組,指向指針的指針。
十、結構體(即「結構」)與共同體(即「聯合」)
1.用typedef說明一個新類型。
2.結構體和共用體類型數據的定義和成員的引用。
3.通過結構體構成鏈表,單向鏈表的建立,結點數據的輸出、刪除與插入。
十一、位運算
1.位運算符的含義和使用。
2.簡單的位運算。
十二、文件操作
只要求緩沖文件系統(即高級磁碟I/O系統),對非標准緩沖文件系統(即低級磁碟I/O系統)不要求。
1.文件類型指針(FILE類型指針)。
2.文件的打開與關閉(fopen,fclose)。
3.文件的讀寫(fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函數的應用),文件的定位(rewind,fseek函數的應用)。
◆ 考試方式
1.筆試:90分鍾,滿分100分,其中含公共基礎知識部分的30分。
2.上機:90分鍾,滿分100分
3、上機操作包括:
(1)填空。
(2)改錯。
(3)編程。
另外,虛機團上產品團購,超級便宜
⑨ 誰有c語言經典題目
設計原理:主要利用函數調用來完成
設計方案及流程:
S1:定義變數,數組
S2:調用input函數,輸入10個職工的姓名和職工號,返回到主函數
S3:調用sort函數,用「起泡法」對職工號和姓名按從大到小排序返回主函數
S4:輸入一個職工號,調用search函數,折半查找法找到該職工,並輸出職工號和職工姓名
四、 實驗步驟(包括主要步驟、代碼分析等)
#include<stdio.h>
#include<string.h>
#define N 10
void main()
{
void input(int num[],char name[][8]);
void sort(int num[],char name[][8]);
void search(int n,int num[],char name[][8]);
int num[N],number,flag=1,c;
char name[N][8];
input(num,name);
sort(num,name);
while(flag==1)
{
printf("\ninput number to look for:");
scanf("%d",&number);
search(number,num,name);
printf("continue or not(Y/N)?");
getchar();
c=getchar();
if(c=='N'||c=='n')
flag=0;
}
}
void input(int num[],char name[][8])
{
int i;
for(i=0;i<N;i++)
{
printf("\ninput No.:");
scanf("%d",&num[i]);
printf("input name:");
getchar();
gets(name[i]);
}
}
void sort(int num[],char name[][8])
{
int i,j,templ;
char temp2[8];
for(j=0;j<N-1;j++)
for(i=0;i<N-1-j;i++)
if(num[i]>num[i+1])
{
templ=num[i];
strcpy(temp2,name[i]);
num[i]=num[i+1];
strcpy(name[i],name[i+1]);
num[i+1]=templ;
strcpy(name[i+1],temp2);
}
printf("\n result:\n");
for(i=0;i<N;i++)
printf("\n %5d%10s",num[i],name[i]);
}
void search(int n,int num[],char name[][8])
{
int top,bott,mid,loca,sign;
top=0;
bott=N-1;
loca=0;
sign=1;
if((n<num[0])||(n>num[N-1]))
loca=-1;
while((sign==1)&&(top<=bott))
{
mid=(bott+top)/2;
if(n==num[mid])
{
loca=mid;
printf("No.%d,his name is %s.\n",n,name[loca]);
sign=-1;
}
else if(n<num[mid])
bott=mid-1;
else top=mid+1;
}
if(sign==1||loca==-1)
printf("can not find%d.\n",n);
}
五、 結果分析與總結
結果分析:
input No.:1
input name:li
input No.:2
input name:wang
input No.:5
input name:liu
input No.:8
input name:ma
input No.:4
input name:chen
input No.:10
input name:zhou
input No.:12
input name:zhang
input No.:6
input name:xie
input No.:23
input name:yuan
input No.:34
input name:lu
result:
1 li
2 wang
4 chen
5 liu
6 xie
8 ma
10 zhou
12 zhang
23 yuan
34 lu
input number to look for:3
can not find 3.
continue or not(Y/N)?y
input number to look for:6
No.6,his name is xie.
continue or not(Y/N)?n
⑩ C語言的一些試題
1.a
a=7/2(=3)
4.c
看一下scanf的定義
5.c
"222"是字元串
6.a
沒有轉義
8.b
'\0'是字元串結束標志
9.b
試過了,沒想通
10.d
沒有理由
11.c
邏輯與
12.b
y=*&a就是y=a
13.b
++在後面
14.a
++a不影響a的地址(vc下不能編譯)
15.c
先++x,x為6,(++x==y)成立,又++x為7