2014年計算機二級c語言題庫
⑴ 買了新思路2014計算機二級c語言題庫,原來以為是原題。。
新思路的題目本來就是文不對題,跟考試的題目一點關系都沒有,超垃圾,用過未來教育的永遠不會再去用新思路
⑵ 求全國二級C語言3月份題庫
2009年3月全國計算機等級考試二級C語言筆試卷
核心提示:
2009年3月全國計算機等級考試二級筆試試卷C語言程序設計(考試時間90分鍾,滿分100分)選擇題(1)下列敘述中正確的是 A) 棧是「先進先出」的線性表B) 隊列是「先進先出」的線性表C) 循環隊列是非線性結構D
2009年3月全國計算機等級考試二級筆試試卷C語言程序設計
(考試時間90分鍾,滿分100分)
選擇題
(1)下列敘述中正確的是
A) 棧是「先進先出」的線性表
B) 隊列是「先進先出」的線性表
C) 循環隊列是非線性結構
D) 有序性表既可以採用順序存儲結構,也可以採用鏈式存儲結構
(2)支持子程序調用的數據結構是
A) 棧 B) 樹 C) 隊列 D)二叉樹
(3)某二叉樹有5個度為2的結點,則該二叉樹中的葉子結點數是
A)10 B)8 C)6 D)4
(4)下列排序方法中,最壞情況下比較次數最少的是
A)冒泡排序 B)簡單選擇排序 C)直接插入排序 D)堆排序
(5)軟體按功能可以分為:應用軟體、系統軟體和支撐軟體(或工具軟體)。下面屬於應用軟體的是
A)編譯軟體 B)操作系統 C)教務管理系統 D)匯編程序
(6)下面敘述中錯誤的是
A)軟體測試的目的是發現錯誤並改正錯誤
B)對被調試的程序進行「錯誤定位」是程序調試的必要步驟
C)程序調試通常也稱為Debug
D)軟體測試應嚴格執行測試計劃,排除測試的隨意性
(7)耦合性和內聚性是對模塊獨立性度量的兩個標准。下列敘述中正確的是
A)提高耦合性降低內聚性有利於提高模塊的獨立性
B)降低耦合性提高內聚性有利於提高模塊的獨立性
C)耦合性是指一個模塊內部各個元素間彼此結合的緊密程度
D)內聚性是指模塊間互相連接的緊密程度
(8)資料庫應用系統中的核心問題是
A)資料庫設計 B)資料庫系統設計
C)資料庫維護 D) 資料庫管理員培訓
(9)有兩個關系R,S如下:
R S
A B C A B
a 3 2 a 3
b 0 1 b 0
c 2 1 c 2
由關系R通過運算得到關系S,則所使用的運算為
A) 選擇 B)投影 C) 插入 D)連接
(10)將E-R圖轉換為關系模式時,實體和聯系都可以表示為
A) 屬性 B)鍵 C) 關系 D) 域
(11)以下選項中合法的標識符是
A) 1-1 B)1—1 C)-11 D)1--
(12)若函數中有定義語句:int k;,則
A)系統將自動給k賦初值0 B)這時k中值無定義
C)系統將自動給k賦初值-1 D)這時k中無任何值
(13)以下選項中,能用作數據常量的是
A)o115 B) 0118 C)1.5e1.5 D) 115L
(14)設有定義:int x=2; ,以下表達式中,值不為6的是
A) x*=x+1 B) x++,2*x C)x*=(1+x) D)2*x,x+=2
(15)程序段:int x=12; double y=3.141593; printf(「%d%8.6f」,x,y);的輸出結果是
A)123.141593 B)12 3.141593 C)12,3.141593 D)123.141593
(16)若有定義語句:double x,y,*px,*py,執行了px=&x, py=&y;之後,正確的輸入語句是
A)scanf(「%f%f」,x,y); B) scanf(「%f%f」,&x,&y);
C) scanf(「%lf%le」,px,py); D) scanf(「%lf%lf」,x,y);
(17)以下是if語句的基本形式:
if (表達式) 語句
其中「表達式」
A)必須是邏輯表達式 B)必須是關系表達式
C)必須是邏輯表達式或關系表達式 D)可以是任意合法的表達式
(18)有以下程序
#include <stdio.h>
main()
{int x;
scanf(「%d」,&x);
if(x<=3); else
if(x!=10) printf(「%d\n」,x);
}
程序運行時,輸入的值在哪個范圍才會有輸出結果
A)不等於10的整數 B)大於3且不等於10的整數
C) 大於3或等於10的整數 D)小於3的整數
(19)有以下程序
#include<stdio.h>
Main()
{ int a=1,b=2,c=3,d=0;
if(a= =1 &&b++= =2)
if(b!=2 || c--!=3)
printf(「%d,%d,%d\n」,a,b,c);
else printf(「%d,%d,%d\n」,a,b,c);
else printf(「%d,%d,%d\n」,a,b,c);
}
程序運行後的輸出結果是
A)1,2,3 B)1,3,2 C)1,3,3 D)3,2,1
(20)以下程序中的變數已正確定義
for(i=0;i<4;i++,i++
for(k=1;k<3;k++);printf(*」);
程序段的輸出結果是
A)******** B)**** C)** D)*
(21)有以下程序
#include<stdio.h>
main()
{char *s=(「ABC);
do
{printf(「%d」,*s%10);s++;
}while(*s);
}
注意,字母A的ASCII碼值為65。程序運行後的輸出結果是
A)5670 B)656667 C)567 D)ABC
(22)設變數已正確定義,以下不能統計出一行中輸入字元個數(不包含回車符)的程序段是
A)n=0;while((ch=getchar())!=』\n』)n++; B) n=0;while(getchar()!=』\n』)n++;
C)for(n=0; getchar()!=』\n』;n++); D)n=0;for(ch=getchar();ch!=』\n』;n++);
(23)有以下程序
#include<stdio.h>
main()
{ int a1,a2;char c1,c2;
scanf(「%d%c%d%c」,&a1,&c1,&a2,&c2);
printf(「%d,%c,%d,%c」,&1,c1,a2,c2);
}
若想通過鍵盤輸入,使得a1的值為12,a2的是為34,c1的值為字元a,c2的值為字元b,程序輸出結果是:12,a,34,b,則正確的輸入格式是(以下 代表空格,<CR>代表回車)
A)12a34b<CR> B)12 a 34 b<CR>
C)12,a,34,b<CR> D)12 a34 b<CR>
(24)有以下程序
#include<stdio.h>
int f(int x,int y)
{return()y-x)*x);}
main()
{int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf(「%d\n」,d);
}
程序運行後的輸出結果是
A)10 B)9 C)8 D)7
(25)有以下程序
#include<stdio.h>
void fun(char *s)
{while(*s)
{ if(*s%2==0) printf(「%c」,*s);
s++;
}
}
main()
{ char a[]={「good」};
fun(a);printf(「\n」);
}
注意:字母a的ASCⅡ碼值為97,程序運行後的輸出結果是
A)d B)go C)god D)good
(26)有以下程序
#include <stdio.h>
void fun( int *a,int *b)
{int *c;
c=a;a=b;b=c;
}
main()
{int x=3,y-5,*P=&x,*q=&y;
fun(p,q);printf(「%d,%d,」,*p,*q);
fun(&x,&y);printf(「%d,%d\n」,*p,*q);
}
程序運行後的輸出結果是
A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3
(27)有以下程序
#include <stdio.h>
viod f(int *p,int *q );
main()
{ int m=1,n=2,*r=&m;
f(r,&n);printf(「%d,%d」,m,n);
}
void f(int *p,int *q)
{p=p+1;*q=*q+1;}
程序運行後輸出的結果是
A)1,3 B)2,3 C)1,4 D)1,2
(28)以下函數按每行8個輸出數組中的數據
void fun( int *w,int n)
{ int i;
for(i=0;i<n;i++)
{_________________
printf(「%d」,w);
}
printf(「\n」);
}
下劃線處應填入的語句是
A)if(i/8==0)print(「\n」); B) if(i/8==0)continue;
C) if(i%8==0)print(「\n」); D) if(i%8==0)continue;
(29)若有以下定義
int x[10],*pt=x;
則對x數組元素的正確應用是
A)*&x[10] B)*(x+3) C)*(pt+10) D)pt+3
(30)設有定義:char s[81];int i=10;,以下不能將一行(不超過80個字元)帶有空格的字元串真確讀入的語句或語句組是
A gets(s)
B)while((s[i++]=getchar())!=」\n」;s=」\0」;
C)scanf(「%s」,s);
D)do{scanf(「%c」,&s);}while(s[i++]!=」\n」);s=」\0」;
(31)有以下程序
#include <stdio.h>
main()
{ char *a[ ]={「abcd」,」ef」,」gh」,」ijk」};int I;
for (i=0;i<4;i++) printf(「%c」,*a);
}
程序運行後輸出的結果是
A)aegi B)dfhk C)abcd D)abcdefghijk
(32)以下選項中正確的語句組是
A)char s[];s=」BOOK!」; B) char *s;s={」BOOK!」};
C)char s[10];s=」BOOK!」; D) char *s;s=」BOOK!」;
(33)有以下程序
#include <stdio.h>
int fun{int x,int y}
{ if(x==y) return(x);
else returen((x+y)/2)
}
main()
{ int a=4,b=5,c=6;
printf(「%d\n」,fun(2*a,fun(b,c)))
}
程序運行後的輸出結果是
A)3 B)6 C)8 D)12
(34)設函數中有整型變數n,為保證其在未賦值的情況下初值為0,應選擇的存儲類別是
A)auto B) register C)static D)auto或register
(35)有以下程序
#include <stdio.h>
int b=2;
int fun(int *k)
{ b=*k+b;return (b);}
main()
{ int a[10]={1,2,3,4,5,6,7,8},I;
for(i=2;i<4;i++) {b=fun(&a)+b;printf(「%d」,b);}
printf(「\n」);
}
程序運行後輸出的結果是
A)10 12 B)8 10 C)10 28 D)10 16
(36)有以下程序
#include <stdio.h>
#define PT 3.5;
#define S(x) PT*x*x;
mian()
{ int a=1, b=2; printf(「%4.1f\n」,S(a+b));}
程序運行後輸出的結果是
A)14.0 B)31.5 C)7.5 D)程序有錯無輸出結果
(37)有以下程序
#include <stdio.h>
struct ord
{ int x,y;} dt[2]={1,2,3,4};
main()
{ struct ord *p=dt;
printf (「%d,」,++p->x); printf(「%d\n」,++p->y);
}
程序的運行結果是
A)1,2 B)2,3 C)3,4 D)4,1
(38)設有宏定義:#include IsDIV(k,n) ((k%n==1)?1:0且變數m已正確定義並賦值,則宏調用:IsDIV(m,5)&& IsDIV(m,7)為真時所要表達的是
A)判斷m是否能被5或者7整除
B)判斷m是否能被5和7整除
C)判斷m被5或者7整除是否餘1
D)判斷m被5和7整除是否餘1
(39)有以下程序
#include <stdio.h>
main()
{ int a=5,b=1,t;
t=(a<<2|b); printf(「%d\n」,t)
}
程序運行後的輸出結果是
A)21 B)11 C)6 D)1
(40)有以下程序
#include <stdio.h>
main()
{ EILE *f;
f=fopen(「filea.txt」,」w」);
fprintf(f,」abc」);
fclose(f);
}
若文本文件filea.txt中原有內容為:hello,則運行以上程序後,文件filea.txt中的內容為
A) helloabc B)abclo C)abc D)abchello
二、填空題(每空2分,共30分)
請將每一個空的正確答案寫在答題卡【1】至【15】序號的橫線上,答在試卷上不得分。
(1)假設一個長度為50的數組(數組元素的下標從0到49)作為棧的存儲空間,棧底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,top=30(數組下標),則棧中具有 【1】 個元素。
(2)軟體測試可分為白盒測試和黑盒測試。基本路徑測試屬於 【2】 測試。
(3)符合結構化原則的三種基本控制結構是:選擇結構、循環結構和 【3】 。
(4)資料庫系統的核心是 【4】
(5)在E-R圖中,圖形包括矩形框、菱形框、橢圓框。其中表示實體聯系的是 【5 】框。
(6)表達式(int)((double)(5/2)+2.5)的值是【6】
(7)若變數x、y已定義為int類型且x的值為99,y的值為9,請將輸出語句printf(【7】,x/y);補充完整,使其輸出的計算結果形式為:x/y=11
(8)有以下程序
#include <stdio.h>
main( )
{ char c1,c2;
scanf(「&c」,&c1);
while(c1<65||c1>90) scanf(「&c」,&c1);
c2=c1+32;
printf(「&c, &c\n」,c1,c2);
}
程序運行輸入65回車後,能否輸出結果、結束運行(請回答能或不能)【8】 。
(9)以下程序運行後的輸出結果是【9】
#include <stdio.h>
main( )
{int k=1,s=0;
do{
if{((k&2)!=0)continue;
s+=k;k++;
}while(k)10);
printf(「s=&d/n」,s);
}
(10)下列程序運行時,若輸入labced12df<回車> 輸出結果為【10】
#include <stdio.h>
main( )
{char a =0,ch;
while((ch=getchar())!=』\n』)
{if(a&2!=0&&(ch>』a』&&ch<=』z』)) ch=ch-『a』+』A』;
a++;putchar(ch);
}
printf(「\n」);
}
(11)有以下程序,程序執行後,輸出結果是【11】
#include <stdio.h>
void fun (int *a)
{a[0=a[1];]}
main()
{int a[10]={10,9,8,7,6,5,4,3,2,1},i;
for(i=2;i>=0;i--) fun{&a};
for(i=0;i<10;i++) printf(「&d」,a);
printf(「\n」);
}
(12)請將以下程序中的函數聲明語句補充完整
#include <stdio.h>
int【12】 ;
main( )
{int x,y,(*p)();
p=max;
printf(「&d\n」,&x,&y);
}
Int max(int a,int b)
{return (a>b/a:b);}
(13)以下程序用來判斷指定文件是否能正常打開,請填空
#include <stdio.h>
main( )
{FILE *fp;
if (((fp=fopen(「test.txt」,」r」))==【13】))
printf(「未能打開文件!\n」);
else
printf(「文件打開成功!\n」);
(14)下列程序的運行結果為【14】
#include <stdio.h>
#include <string.h>
struct A
{int a;char b[10];double c;};
void f (struct A *t);
main()
{struct A a=(1001,」ZhangDa」,1098,0);
f(&a);printf(「&d,&s,&6,if\n」,a.a,a.b,a.c);
}
void f(struct A *t)
{strcpy(t->b,」ChangRong」); }
(15)以下程序把三個NODETYPE型的變數鏈接成一個簡單的鏈表,並在while循環中輸出鏈表結點數據域中的數據,請填空
#include <stdio.h>
struct node
{int data; struct node *next;};
typedef struct node NODETYPE;
main()
{NODETYPE a,b,c,*h,*p;
a. data=10;b.data=20;c.data=30;h=&a;
b. next=&b;b.next=&c;c.next=』\0』;
p=h;
while(p){printf(「&d」,p->data);【15】;}
}
2009年4月二級C參考答案
選擇題:
1~10: DACDC ABABC
11~20:CBDDA CDBCB
21~30:CDABA BACBC
31~40:ADBCC CBDAC
填空題:
(1)19
(2)白盒
(3)順序結構
(4)資料庫管理系統(DBMS)
(5)菱形
(6)4
(7)"x/y=%d"
(8)能
(9)s=0
(10)1AbCeDf2dF
(11)7777654321
(12)max(int a,int b)
(13)NULL
(14)1001,ChangRong,1098.0
(15)p=p—>next
⑶ 計算機二級c語言題庫及答案
⑷ 求一個計算機二級c題庫 謝謝!
2010年9月全國計算機等級考試二級C語言筆試試題及答案
一、選擇題((1)-(10)每題2分,(11)-(50)每題1分.共60分))
(1)下列選項中不屬於軟體生命周期開發階段任務的是
A)詳細設計 B)概要設計 C)軟體維護 D)軟體測試
(2)樹是結點的集合,它的根結點數目是
A)有且只有1 B)1或多於1 C)0或1 D)至少2
(3)在面向對象方法中,實現信息隱蔽是依靠
A)對象的繼承 B)對象的多態 C)對象的封裝 D)對象的分類
(4)程序設計語言的基本成分是數據成分、運算成分、控製成分和
A)語句成分 B)變數成分 C)對象成分 D)傳輸成分
(5)冒泡排序在最壞情況下的比較次數是
A)n/2 B)nlog2n C)n(n-1)/2 D)n(n+1)/2
(6)下列敘述中,不屬於軟體需求規格說明書的作用的是
A)作為確認測試和驗收的依據
B)反映出用戶問題的結構,可以作為軟體開發工作的基礎和依據
C)便於用戶、開發人員進行理解和交流
D)便於開發人員進行需求分析
(7)下列敘述中錯誤的是
A)一個C語言程序只能實現一種演算法 B)C程序可以由多個程序文件組成
C)C程序可以由一個或多個函數組成 D)一個函數可單獨作為一個C程序文件存在
(8)下列不屬於軟體工程的3個要素的是
A)方法 B)過程 C)工具 D)環境
(9)下列敘述中正確的是
A)資料庫系統是一個獨立的系統,不需要操作系統的支持
B)資料庫技術的根本目標是要解決數據的共享問題
C)資料庫管理系統就是資料庫系統
D)以上三種說法都不對
(10)下列敘述中正確的是
A)每個C程序文件中都必須有一個main()函數
B)在C程序的函數中不能定義另一個函數
C)C程序可以由一個或多個函數組成
D)在C程序中main()函數的位置是固定的
(11)將E-R圖轉換到關系模式時,實體與聯系都可以表示成
A)屬性 B)關系 C)鍵 D)域
(12)下列定義變數的語句中錯誤的是
A)double int_; B)int _int; C)char For D)float USS
(13)下列敘述中正確的是
A)C語言編譯時不檢查語法 B)C語言的子程序有過程和函數兩種
C)C語言的函數可以嵌套定義 D)C語言的函數可以嵌套調用
(14)以下選項中,合法的一組C語言數值常量是
A) 0x8A B)12 C).177 D) 028
(15)以下敘述中正確的是
A)構成C程序的基本單位是函數
B)可以在一個函數中定義另一個函數
C)main()函數必須放在其他函數之前
D)所有被調用的函數一定要在調用之前進行定義
(16)若在定義語句:int a,b,c,*p=&c;之後,接著執行以下選項中的語句,則能正確執行的語句是
A)scanf("%d",&p); B)scanf("%d%d%d",a,b,c);
C)scanf("%d",p); D) scanf("%d",a,b,c);
(17) 有以下程序
main()
{int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序運行後的輸出結果是
A)2,2,3 B)2,2,2 C)2,3,1 D)2,1,1
(18) 若已定義:int a=25,b=14,c=19;以下三目運算符(?:)所構成語句的執行後a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序輸出的結果是
A)***a=25,b=13,c=19 B)***a=26,b=14,c=19
C)### a=25,b=13,c=19 D)### a=26,b=14,c=19
(19)下列程序段的輸出結果是
int a=1234;
float b=123.456;
double c=12345.54321;
printf("-,%2.1f,%2.1f",a,b,c);
A)無輸出 B)12,123.5,12345.5 C)1234,123.5,12345.5 D)1234,123.4,1234.5
(20)有以下程序
main()
{int a=0,b=0;
a=10; /*給a賦值
b=20; 給b賦值 */
printf("a+b=%d\n",a+b); /* 輸出計算結果 */
}
程序運行後輸出結果是
A)30 B)a+b=30 C)a+b=0 D)出錯
(21)若運行以下程序時,從鍵盤輸入 ADescriptor(表示回車),則下面程序的運行結果是
#include
main()
{ char c;
int v0=1,v1=0,v2=0;
do{ switch(c=getchar())
{ case ′a′:case ′A′:
case ′e′:case ′E′:
case ′i′:case ′I′:
case ′o′:case ′O′:
case ′u′:case ′U′:v1+=1;
default:v0+=1;v2+=1;
}
} while(c!=′\n′);
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
A)v0=11,v1=4,v2=11 B)v0=8,v1=4,v2=8
C)v0=7,v1=4,v2=7 D)v0=13,v1=4,v2=12
(22) 有以下程序
#include
main()
{int y=9;
for( y>0;y--)
if(y%3= =0) printf("%d",--y);
}
程序的運行結果是
A)732 B)433 C)852 D)874
(23) 設有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運行程序段後輸出0 B)運行程序段後輸出1
C)程序段中的控製表達式是非法的 D)程序段執行無限次
(24)有以下程序
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++b,a+b),c++);
printf("%d\n",sum);
}
執行後的輸出結果是
A)5 B)7 C)8 D)3
(25)執行下面的程序段後,變數k中的值為
int k=3, s[2];
s[0]=k; k=s[1]*10;
A)不定值 B)35 C)31 D)20
(26)以下敘述中錯誤的是
A)改變函數形參的值,不會改變對應實參的值
B)函數可以返回地址值
C)可以給指針變數賦一個整數作為地址值
D)當在程序的開頭包含文件stdio.h時,可以給指針變數賦NULL
(27)以下程序段的描述,正確的是
x=-1;
do
{x=x*x;} while(!x);
A)是死循環 B)循環執行兩次 C)循環執行一次 D)有語法錯誤
(28)有以下程序
fun(int x,int y)
{static int m=0,i=2;
i+=m+1;m=i+x+y; return m;
}
main()
{int j=1,m=I,k;
k=fun(j,m); printf("%d",k);
k=fun(j,m); printf("%d\n",k)
}
執行後的輸出結果是
A)5,5 B)5,11 C)11,11 D)11,5
(29)有以下程序
fun(int x)
{int p;
if(x==0║x= =1) return(3);
p=x-fun(x=2);
retum p;
}main()
{ prinf("%d\n",fun(7));}
執行後的輸出結果是
A)7 B)3 C)3 D)0
(30)在16位編譯系統上,右有定義int a[ ]={10,20,30},*p=&a;,當執行p++;後,下列說法錯誤的是
A)p向高地址移了一個位元組 B)p抽高地址移了一個存儲單元
C)p向高地址移了兩個位元組 D)p與a+1等價
(31)有以下程序
main()
{int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
}
執行後的輸出結果是
A)1 B)2 C)3 D)4
(32)下列程序執行後的輸出結果是
void func1(int i);
void func2(int i);
char st[]="hello,friend!";
void func1(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func2(i);}
}
void func2(int i)
{ printf("%c",st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0; func1(i); printf("\n");}
A)hello B)hel C)hlo D)hlm
(33)在下述程序中,判斷i>j共執行的次數是
main()
{ int i=0, j=10, k=2, s=0;
for (;;)
{ i+=k;
if(i>j)
{ printf("%d",s);
break;
} s+=i;
}
}
A)4 B)7 C)5 D)6
(34)以下函數返回a所指數組中最大值所在的下標值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=j;iif(a[i]>a[p]);
return(p);
}
在下劃線處應填入的內容是
A)i=p B)a[p]=a[i] C)p=j D)p=i
(35)下列程序執行後的輸出結果是
main()
{ int a[3][3], *p,i;
p=&a[0][0];
for(i=1; i<9; i++)p[i]=i+1;
printf("%d\n",a[1][2]);
}
A)3 B)6 C)9 D)隨機數
(36) 有以下程序
#include
void fun(int *a,int n)/*fun函數的功能是將a所指數組元素從大到小排序*/
{int t,i,j;
for(i=0;ifor(j=i+1;jif (a}
main()
{int c[10]={1,2,3,4,5,6,7,8,9,0},i;
fun(c+4,6);
for (i=0;i<10;i++) printf("%d,",c);
printf("\n");
}
程序運行的結果是
A)1,2,3,4,5,6,7,8,9,0, B)0,9,8,7,6,5,1,2,3,4,
C) 0,9,8,7,6,5,4,3,2,1, D)1,2,3,4,9,8,7,6,5,0,
(37)以下程序的輸出結果是#include
void prt (int *x, int*y, int*z)
{ printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{ int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);
}
A)11,42, 31
12,22,41
B)11,41,20
12,42,20
C)11,21,40
11,21,21
D)11,41,21
12,42,22
(38) 有以下程序:
#include
void fun(char *t,char *s)
{
while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{
char ss[10]=」acc」,aa[10]=」bbxxyy」;
fun(ss,aa);
printf(「%s,%s\n」,ss,aa);
}
程序運行結果是
A) accxyy , bbxxyy B) acc, bbxxyy
C) accxxyy,bbxxyy D) accbbxxyy,bbxxyy
(39) 有以下程序
#include
main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序運行後的輸出結果是
A)20 30 B)20 50 C)30 50 D)30 20
(40) 有以下程序
main()
{int x[3][2]={0},I;
for(I=0;I<3;I++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
若運行時輸入:246<回車>,則輸出結果為
A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6
(41)有以下程序
int add(int a,int b){return+b};}
main()
{int k,(*f)(),a=5,b=10;
f=add;
…
}
則以下函數調用語句錯誤的是
A)k=(*f)(a,b); B)k=add(a,b); C)k=*f(a,b); D)k=f(a,b);
(41)有以下程序
#include <string.h>
main(int argc,char *argv[])
{int i=1,n=0;
while(i<arge){n=n+strlen(argv[i]);i++;}
printf(「%d\n」,n);
}
該程序生成的可執行文件名為:proc.exe。若運行時輸入命令行:
proc 123 45 67
則程序的輸出結果是
A)3 B)5 C)7 D)11
(42)有以下程序
void fun2(char a, char b){printi(「%b%c」,a,b);}
char a= 『A』,b= 『B』;
void fun1( ){ a= 『C』l b= 『D』; }
main( )
{ fun1( )
printf( 「%c%c」,a,b);
fun2(『E』, 『F』);
}
程序的運行結果是
A)CDEF B)ABEF C)ABCD D)CDAB
(43)有以下程序
#include <stdio.h>
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(「%d %d\n」,i1,i2);
}
程序的運行結果是
A)12 12 B)11 7 C)11 11 D)12 7
(44)設有以下語句
typedef struct TT
{char c; int a[4];}CIN;
則下面敘述中正確的是
A)可以用TT定義結構體變數 B)TT是struct類型的變數
C)可以用CIN定義結構體變數 D)CIN是struct TT類型的變數
(45)有以下結構體說明、變數定義和賦值語句
struct STD
{char name[10];
int age;
char sex;
}s[5],*ps;
ps=&s[0];
則以下scanf函數調用語句中錯誤引用結構體變數成員的是
A)scanf(「%s」,s[0].name); B)scanf(「%d」,&s[0].age);
C)scanf(「%c」,&(ps>sex)); D)scanf(「%d」,ps>age);
(46)若有以下定義和語句
union data
{ int i; char c; float f;}x;
int y;
則以下語句正確的是
A)x=10.5; B)x.c=101; C)y=x; D)printf(「%d\n」,x);
(47)若變數已正確定義,則以下語句的輸出結果是
s=32; s^=32;printf(「%d」,s);
A)-1 B)0 C)1 D)32
(48) 若程序中有宏定義行:#define N 100 則以下敘述中正確的是
A)宏定義行中定義了標識符N的值為整數100
B)在編譯程序對C源程序進行預處理時用100替換標識符N
C) 對C源程序進行編譯時用100替換標識符N
D)在運行時用100替換標識符N
(49)以下敘述中正確的是
A)C語言中的文件是流式文件,因此只能順序存取數據
B)打開一個已存在的文件並進行了寫操作後,原有文件中的全部數據必定被覆蓋
C)在一個程序中當對文件進行了寫操作後,必須先關閉該文件然後再打開,才能讀到第1個數據
D)當對文件的讀(寫)操作完成之後,必須將它關閉,否則可能導致數據丟失
(50)有以下程序
#include <stdio.h>
main()
{FILE *fp; int i;
char ch[]=」abcd」,t;
fp=fopen(「abc.dat」,」wb+」);
for(i=0;i<4;i++)fwriter&ch[],1,1fp;
fseek(fp,-2L,SEEK_END);
fread(&t,1,1,fp);
fclose(fp);
printf(「%c\n」,t);
}
程序執行後的輸出結果是
A)d B)c C)b D)a
二、填空題(每空2分,共40分)
(1)在面向對象方法中,類之間共享屬性和操作的機制稱為 【1】 。
(2)一個關系表的行稱為 【2】 。
(3)耦合和內聚是評價模塊獨立性的兩個主要標准,其中 【3】 反映了模塊內各成分之間的聯系。
(4)線性表的存儲結構主要分為順序存儲結構和鏈式存儲結構.隊列是一種特殊的線性表,循環隊列是隊列的【4】存儲結構.
(5) 【5】 的任務是診斷和改正程序中的錯誤。
(6) 以下程序的輸出結果是【6】.
#include
main()
{ int n=12345,d;
while(n!=0){ d=n%10; printf("%d",d); n/=10;}
}
(7)以下程序運行後的輸出結果是 【7】 。
main()
{
int m=011,n=11;
printf("%d %d\n",++m,n++);
}
(8)有以下程序,若運行時從鍵盤輸入:18,11<回車>,則程序輸出結果是 【8】 。
main()
{ int a,b;
printf("Enter a,b:");scanf("%d,%d",&a,&b);
while(a!=b)
{ while(a>b) a-=b;
while(b>a) b-=a;
}
printf("%3d%3d\n",a,b);
}
(9) 有以下程序段,且變數已正確定義和賦值
for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+1));
printf("s=%f\n\n",s);
請填空,使下面程序段的功能為完全相同
s=1.0;k=1;
while(_【9】_______){ s=s+1.0/(k*(k+1)); _【10】_______;}
printf("s=%f\n\n",s);
(10)執行以下程序的輸出結果是【11】______.
#include
main()
{ int i,n[4]={1};
for(i=1;i<=3;i++)
{ n=n[i-1]*2+1; printf("%d",n); }
}
(11)以下程序中函數f的功能是在數組x的n個數(假定n個數互不相同)中找出最大最小數,將其中最小的數與第一個數對換,把最大的數與最後一個數對換.請填空.
#include
viod f(int x[],int n)
{ int p0,p1,i,j,t,m;
i=j=x[0]; p0=p1=0;
for(m=0;m{ if(x[m]>i) {i=x[m]; p0=m;}
else if(x[m]}
t=x[p0]; x[p0]=x[n-1]; x[n-1]=t;
t=x[p1];x[p1]= _【12】_______; 【13】______=t;
}
main()
{ int a[10],u;
for(u=0;u<10;u++) scanf("%d",&a);
f(a,10);
for(u=0;u<10;u++) printf("%d",a);
printf("\n");
}
(12)下列程序中的函數strcpy2()實現字元串兩次復制,即將t所指字元串復制兩次到s所指內存空間中,合並形成一個新的字元串。例如,若t所指字元串為efgh,調用strcpy2後,s所指字元串為efghefgh。請填空。
#include <stdio.h>
#include <string.h>
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s= 【14】 ;
while( 【15】 =*p++);
}
main()
{ char str1[100]="abcd",str2[]="efgh";
strcpy2(str1 ,str2); printf("%s\n",str1);
}
(13)以下程序統計從終端輸入的字元中大寫字母的個數,num[0]中統計字母A的個數,num[1]中統計字母B的個數,其它依次類推.用#號結束輸入,請填空.
#include
#include
main()
{ int num[26]={0},i; char c;
while((_【16】_______)!='#')
if(isupper(c)) num[c-『A』]+= 【17】_______;
for(i=0;i<26;i++)
Printf("%c:%d\n",i+'A',num);
}
(14)以下程序中,函數fun的功能是計算x2-2x+6,主函數中將調用fun函數計算:
y1=(x+8)2-2(x+8)+6
y2=sin2(x)-2sin(x)+6
請填空。
#include "math.h"
double fun(double x) { return(x*x-2*x+6); }
main()
{
double x,y1,y2;
printf("Enter x:"); scanf("%lf",&x);
y1=fun( 【18】 );
y2=fun( 【19】 );
printf("y1=%lf,y2=%lf\n",y1,y2);
}
(15) 以下程序的輸出結果是_【20】______.
#include
#define M 5
#define N M+M
main()
{ int k;
k=N*N*5; printf("%d\n",k);
}
一、選擇題答案:
1-10:CACDC DADBA 11-20:BDDBA CCCCB 21-30:DCBCA CCBCA
31-40:CCDAB DCDAB 41-50:CABCD BBBDB
二、填空題答案:
1.繼承 2. 元組 3.內聚 4.順序 5. 程序調試
6. 54321 7.10 11 8. 1 9.k<=n k++
10. 3 7 5 11.x[0] x[0] 12.s--,*s++ 13.c=getchar() 14. (x+8),sin(x) 15.55
⑸ c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
⑹ 2014年全國計算機等級考試二級C語言總共有多少題的
40道選擇題,3道操作題,一道是填空,一道是改錯,還有一道是編寫一個函數,現在改革之後都採用無紙化的考試方式,一共兩個小時的時間
希望對你有幫助
⑺ 求計算機二級考試c語言機試題庫
這是部分,其餘的可以私下給你,我的QQ:916356609,我傳給你
一、程序填空題
1、給定程序中,函數fun的功能是:在任意給定的9個正整數中找出按升序排列時處於中間的數,將原數據序列中比該中間數小的數用該中間數替換,位置不變,在主函數中輸出處理後的數據序列,並將中間數作為函數值返回。
例如,有9個正整數:1 5 7 23 87 5 8 21 45
按升序排列時的中間數為:8
處理後主函數中輸出的數列為:8 8 8 23 87 8 8 21 45
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
#define N 9
int fun(int x[])
{ int i,j,k,t,mid,b[N];
for(i=0;i<N;i++) b[i]=x[i];
for(i=0;i<=N/2;i++)
{ k=i;
for(j=i+1;j<N;j++) if(b[k]>b[j]) k=j;
if(k != i )
{
/**********found**********/
t=b[i]; b[i]=___1___; b[k]=t;
}
}
/**********found**********/
mid=b[___2___];
for(i=0; i<N; i++)
/**********found**********/
if(x[i] ___3___ mid) x[i]=mid;
return mid;
}
main()
{ int i, x[N]={1,5,7,23,87,5,8,21,45};
for(i=0; i<N; i++) printf("%d ",x[i]);
printf("\nThe mid data is: %d\n",fun(x));
for(i=0; i<N; i++) printf("%d ",x[i]);
printf("\n");
}
2、給定程序中,函數fun的功能是建立一個N×N的矩陣。 矩陣元素的構成規律是:最外層元素的值全部為1;從外向內第2層元素的值全部為2;第3層元素的值全部為3,…依次類推。例如,若N=5,生成的矩陣為:
1 1 1 1 1
1 2 2 2 1
1 2 3 2 1
1 2 2 2 1
1 1 1 1 1
請在程序的下劃線處填入正確的內容並把下劃線刪除, 使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
#define N 7
/**********found**********/
void fun(int (*a) __1__)
{ int i,j,k,m;
if(N%2==0) m=N/2 ;
else m=N/2+1;
for(i=0; i<m; i++) {
/**********found**********/
for(j= __2__ ; j<N-i; j++)
a[i][j]=a[N-i-1][j]=i+1;
for(k=i+1; k<N-i; k++)
/**********found**********/
a[k][i]=a[k][N-i-1]= __3__;
}
}
main()
{ int x[N][N]={0},i,j;
fun(x);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%3d",x[i][j]);
printf("\n");
}
}
3、給定程序中,函數fun的功能是: 將s所指字元串中的所有數字字元移到所有非數字字元之後,並保持數字字元串和非數字字元串原有的先後次序。例如,形參s所指的字元串為:def35adh3kjsdf7。執行結果為:defadhkjsdf3537。
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
void fun(char *s)
{ int i, j=0, k=0; char t1[80], t2[80];
for(i=0; s[i]!='\0'; i++)
if(s[i]>='0' && s[i]<='9')
{
/**********found**********/
t2[j]=s[i]; ___1___;
}
else t1[k++]=s[i];
t2[j]=0; t1[k]=0;
/**********found**********/
for(i=0; i<k; i++) ___2___;
/**********found**********/
for(i=0; i<___3___; i++) s[k+i]=t2[i];
}
main()
{ char s[80]="def35adh3kjsdf7";
printf("\nThe original string is : %s\n",s);
fun(s);
printf("\nThe result is : %s\n",s);
}
4、給定程序中,函數fun的功能是:有N×N矩陣,以主對角線為對稱線,對稱元素相加並將結果存放在左下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣:
1 2 3
4 5 6
7 8 9計算結果為
1 0 0
6 5 0
10 14 9
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
#define N 4
/**********found**********/
void fun(int (*t)___1___ )
{ int i, j;
for(i=1; i<N; i++)
{ for(j=0; j<i; j++)
{
/**********found**********/
___2___ =t[i][j]+t[j][i];
/**********found**********/
___3___ =0;
}
}
}
main()
{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;
printf("\nThe original array:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
fun(t);
printf("\nThe result is:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%2d ",t[i][j]);
printf("\n");
}
}
5、給定程序中,函數fun的功能是:對形參s所指字元串中下標為奇數的字元按ASCII碼大小遞增排序,並將排序後下標為奇數的字元取出,存入形參p所指字元數組中,形成一個新串。
例如,形參s所指的字元串為:baawrskjghzlicda,執行後p所指字元數組中的字元串應為:aachjlsw。
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
void fun(char *s, char *p)
{ int i, j, n, x, t;
n=0;
for(i=0; s[i]!='\0'; i++) n++;
for(i=1; i<n-2; i=i+2) {
/**********found**********/
___1___;
/**********found**********/
for(j=___2___+2 ; j<n; j=j+2)
if(s[t]>s[j]) t=j;
if(t!=i)
{ x=s[i]; s[i]=s[t]; s[t]=x; }
}
for(i=1,j=0; i<n; i=i+2, j++) p[j]=s[i];
/**********found**********/
p[j]=___3___;
}
main()
{ char s[80]="baawrskjghzlicda", p[50];
printf("\nThe original string is : %s\n",s);
fun(s,p);
printf("\nThe result is : %s\n",p);
}
6、程序通過定義並賦初值的方式,利用結構體變數存儲了一名學生的信息。函數fun的功能是輸出這位學生的信息。
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
typedef struct
{ int num;
char name[9];
char sex;
struct { int year,month,day ;} birthday;
float score[3];
}STU;
/**********found**********/
void show(STU ___1___)
{ int i;
printf("\n%d %s %c %d-%d-%d", tt.num, tt.name, tt.sex,
tt.birthday.year, tt.birthday.month, tt.birthday.day);
for(i=0; i<3; i++)
/**********found**********/
printf("%5.1f", ___2___);
printf("\n");
}
main( )
{ STU std={ 1,"Zhanghua",'M',1961,10,8,76.5,78.0,82.0 };
printf("\nA student data:\n");
/**********found**********/
show(___3___);
}
7、給定程序中,函數fun的功能是:計算N×N矩陣的主對角線元素和反向對角線元素之和,並作為函數值返回。注意:要求先累加主對角線元素中的值,然後累加反向對角線元素中的值。例如,若N=3,有下列矩陣:
1 2 3
4 5 6
7 8 9fun函數首先累加1、5、9,然後累加3、5、7,函數的返回值為30。
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdio.h>
#define N 4
fun(int t[][N], int n)
{ int i, sum;
/**********found**********/
___1___;
for(i=0; i<n; i++)
/**********found**********/
sum+=___2___ ;
for(i=0; i<n; i++)
/**********found**********/
sum+= t[i][n-i-___3___] ;
return sum;
}
main()
{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j;
printf("\nThe original data:\n");
for(i=0; i<N; i++)
{ for(j=0; j<N; j++) printf("%4d",t[i][j]);
printf("\n");
}
printf("The result is: %d",fun(t,N));
}
8、給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值(規定所有數均為正數),作為函數值返回;並將大於平均值的數放在形參y所指數組中,在主函數中輸出。
例如,有10個正數:46 30 32 40 6 17 45 15 48 26,平均值為:30.500000
主函數中輸出:46 32 40 45 48
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdlib.h>
#include <stdio.h>
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/**********found**********/
av=__1__;
/**********found**********/
for(i=0; i<N; i++) av = av + __2__;
for(i=j=0; i<N; i++)
/**********found**********/
if(x[i]>av) y[__3__]= x[i];
y[j]=-1;
return av;
}
main()
{ int i; double x[N] = {46,30,32,40,6,17,45,15,48,26};
double y[N];
for(i=0; i<N; i++) printf("%4.0f ",x[i]);
printf("\n");
printf("\nThe average is: %f\n",fun(x,y));
for(i=0; y[i]>=0; i++) printf("%5.0f ",y[i]);
printf("\n");
}
9、給定程序中,函數fun的功能是:計算形參x所指數組中N個數的平均值(規定所有數均為正數),將所指數組中小於平均值的數據移至數組的前部,大於等於平均值的數據移至x所指數組的後部,平均值作為函數值返回,在主函數中輸出平均值和移動後的數據。
例如,有10個正數:46 30 32 40 6 17 45 15 48 26,平均值為:30.500000
移動後的輸出為:30 6 17 15 26 46 32 40 45 48
請在程序的下劃線處填入正確的內容並把下劃線刪除,使程序得出正確的結果。
注意:源程序存放在考生文件夾下的BLANK1.C中。
不得增行或刪行,也不得更改程序的結構!
#include <stdlib.h>
#include <stdio.h>
#define N 10
double fun(double *x)
{ int i, j; double av, y[N];
av=0;
/**********found**********/
for(i=0; i<N; i++) av +=__1__;
⑻ 求最新的計算機二級考試題庫
④ 計算機等級考試題庫網路網盤免費資源在線學習
鏈接: https://pan..com/s/1CFP0Wm06zRVIslYWpPx-HA
④ 計算機等級考試題庫 未來教育vip版 2019.9 無憂考吧 最新題庫 2019.3 無憂考吧 計算機題庫 2018.9 無憂考吧考試題庫 2018.9 未來教育 最新版 2018.3 無憂考吧版題庫 2018.3 未來教育 普通版 未來教育計算機等級考試手機版3.0 vip破解版,不用注冊,直接點確定.apk 一級MS Office無紙化考試模擬軟體.zip 三級網路技術無紙化考試模擬軟體.zip 三級資料庫無紙化考試模擬軟體.zip 三級嵌入式無紙化考試模擬軟體.zip 二級C無紙化考試模擬軟體.zip 二級C++無紙化考試模擬軟體(Express).zip