國家計(jì)算機(jī)二級c語言考試題庫
在國家計(jì)算機(jī)二級的考試題庫中,有哪些C語言的題目呢?下面是學(xué)習(xí)啦小編給大家整理的國家計(jì)算機(jī)二級c語言考試題庫及答案,供大家參閱!
國家計(jì)算機(jī)二級c語言考試題庫
一、選擇題
1.若有以下定義和語句:
char s [10]="abcd!",*s2="\nl23\";
Drintf("%d%d\n",strlen(sl),strlen(s2));
則輸出結(jié)果是( )。
A.5 5
B.10 5
C.10 7
D.5 8
2.有以下程序:
#include
#define N 8
void fun(int*x,int i)
{*x=*(x+i);)
main( )
{ int a[N]={1,2,3,4,5,6,7,8},i;
fun(a,2);
for(i=0;i{printf("Ha",a[i]);}
printf("\n");
)
程序運(yùn)行后的輸出結(jié)果是( )。
A.1313
B.2234
C.3234
D.1234
3.有以下程序:
#include
int f(int t[],int n);
main( )
{int a[4]={1,2,3,4},s;
s=f(a,4);printf("%d\n",s);
int f(int t[],int n)
{if(n>0)return t[n-1]+f(t,n-1);
else return 0;
)
程序運(yùn)行后的輸出結(jié)果是( )。
A.4
B.10
C.14
D.6
4.有以下程序:
#include
int fun( )
{static int x=1;
X*=2;return X;
main( )
{int i,S=1;
for(i=1;i<=2;i++)s=fun( );
printf{¨%d\n",s);
)
程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.1
C.4
D.8
5.有以下程序:
#include
#define SUB(a)(a)-(a)
main( )
{int a=2,b=3,c=5,d;
d=SUB(a+b)*C;
printf("%d\n",d);
)
程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.-l2
C.-20
D.10
6.設(shè)有定義:
struet complex
{int real,unreal;)datal={1,8},data2;
則以下賦值語句中錯(cuò)誤的是( )。
A.data2=datal;
B.data2={2,6};
C.data2.real=datal.real;
D.data2.real=datal.unreal;
7.有以下程序:
#include
#include
struct A
{int a;char b[10];double C;);
void f(struct A t);
main( )
{struct A a={"1001,"ZhangDa",l098,0};
f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}
void f(struct A t)
{t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}
程序運(yùn)行后的輸出結(jié)果是( )。
A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
8.有以下定義和語句:
struct workers
{int num;char name[20];char C;
struct
(int day;int month;int year;)S;
};
struct workers w,*pw;
pw=&w;
能給w中year成員賦1980的語句是( )。
A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
9.有以下程序:
#include
main( )
{int a=2,b=2,C=2;
print{("%d\n",a/b&c);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.0
B.1
C.2
D.3
10.有以下程序:
#include
main( )
{FILE*fp;char str[10];
fp=fopen("myfile,dat","");
{puts("abe",ip);fclose(fp);
fp=fopen("myfile.dat","a*");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%S",str);puts(str);
fclose(fp);
}
程序運(yùn)行后的輸出結(jié)果是( )。
A.abc
B.28c
C.abc28
D.內(nèi)類型不一致而出錯(cuò)
二、程序改錯(cuò)題
給定程序中,函數(shù)proc( )的功能是:使數(shù)組中的元素的值縮小5倍。
請修改程序中的錯(cuò)誤,使它能得出正確的結(jié)果。
注意:不要改動main( )函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。
試題程序:
#include
#include
#include
float m[lO];
//****found****
int proc(void)
{
int j;
printf("In subfunc after calling\n");
for(j=0;j<10;j++)
{
//****found****
printf("%f",m[j]%5);
}
}
void main( )
{
int i;
printf("In main before calling\n");
for(i=0;i<10;i++)
{
m[i]=i+20;
printf("%f",m[i]);
}
proc( );
printf("\nln main after calling\n");
for(i=0;i<10;i++)
printf("%f",m[i]/5);
}
三、程序設(shè)計(jì)題 學(xué)生的記錄由學(xué)號和成績組成,M名學(xué)生的數(shù)據(jù)已在主函數(shù)中放入結(jié)構(gòu)體數(shù)組stu中,請編寫函數(shù)proc( ),其功能是:按分?jǐn)?shù)的高低排列學(xué)生的記錄,高分在前。
注意:部分源程序給出如下。
請勿改動main( )函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)proc( )的花括號中填入所編寫的若干語句。
試題程序:
#include
#define M l6
typedef struct
{
char num[l0];
int S;
}
STREC:
void proc(STREC a[])
{
int i,j;
STREC t;
for(i=1;i排序*/
for(j=0;jif(a[j].s的記錄,高分在前*/
{t=a[j];a[j]=a[j+1];a[j+1]=t;)
}
void main( )
{
STREC stu[M]={{"GA005",85),{"GA003",76},
{"GA002",69},{"GA004",85),{"GA001",91),
{"GA007",72),{"GA008",64),{"GA006",87),
{"GA015",85),{"GA013",91),{"GA012",64),
{¨GA014",91),{"GA011",66),{"GA017",64},
{"GA018",64),{"GA016",72}};
int i;
proc(stu);
printf("The data after sorted:\n");
for(i=0;i{
if(i%4= =0)
//每行輸出4個(gè)學(xué)生記錄
printf("n");
printf("%s%4d",stu[i],num,stu[i].s);
}
printf("\n");
}
國家計(jì)算機(jī)二級c語言考試題庫答案
一、選擇題
1.A?!窘馕觥縗n和\分別為轉(zhuǎn)義字符,各占據(jù)一個(gè)字符的位置。
2.C?!窘馕觥勘绢}考查了宏定義與局部變量的區(qū)別,宏定義的作用范圍為整個(gè)程序,而變量的作用范圍只在定義它的函數(shù)體的部分,因此,主函數(shù)中定義的i與fun( )中的i互不相干。
3.B?!窘馕觥勘绢}考查了函數(shù)的調(diào)用,并且使用了嵌套。
4.C。【解析】本題考查了static的用法。當(dāng)static用于局部變量中,成為靜態(tài)局部變量。靜態(tài)局部變量有兩個(gè)用法,記憶功能和全局生存期。當(dāng)static用于全局變量,主要作用是限制此全局變量被其他的文件調(diào)用。當(dāng)static用于類中的成員,表示這個(gè)成員是屬于這個(gè)類,但是不屬于類中任意特定對象。所以本題答案為C。
5.C?!窘馕觥勘绢}調(diào)用參數(shù),并考查了優(yōu)先級。SUB(a+b)*C調(diào)用后可寫成(a書b)-(a+b)*C,結(jié)果為5-25=-20。
6.B。【解析】B中的賦值方式僅限于在結(jié)構(gòu)說明時(shí),對每個(gè)變量成員初始化。在程序中對結(jié)構(gòu)體成員賦值,或采用選項(xiàng)A中的整體賦值方式,或采用選項(xiàng)C、D中對結(jié)構(gòu)成員依次賦值。
7.A?!窘馕觥繉⒔Y(jié)構(gòu)變量作為形參,通過函數(shù)間形參與實(shí)參相結(jié)合的方式將整個(gè)結(jié)構(gòu)傳遞給函數(shù),這種傳遞方式是值傳遞。在被調(diào)用函數(shù)中,對結(jié)構(gòu)形參變量值進(jìn)行的任何修改都不會影啊到調(diào)凋函數(shù)中的結(jié)構(gòu)變量。
8.D?!窘馕觥拷Y(jié)構(gòu)workers中的成員s是一個(gè)嵌套的結(jié)構(gòu)類型定義,因此在給year賦值時(shí),要用“.”運(yùn)算在深入一層訪問到最基本的成員year,只有D項(xiàng)反映出了這一點(diǎn)。
9.A?!窘馕觥扛鶕?jù)C語言運(yùn)算符的優(yōu)先級與結(jié)合性,先計(jì)算a/b,結(jié)果為l,再將a/b的結(jié)果與C做按位與運(yùn)算,即l與2做按位與運(yùn)算,其結(jié)果為0。 . .
10.C。【解析】本題考查文件的操作,首先打開文件,進(jìn)行寫操作,把“abc”寫入“myfile”文件,再打開“myfile.data"文件,輸入28,在鍵盤上接收字符,輸出并關(guān)閉文件。本題結(jié)果為abc28。
二、程序改錯(cuò)題
(1)錯(cuò)誤:int proc(void)
正確:void proc(void)
(2)錯(cuò)誤:printf("%f",m[j]%5);
正確:pfintf("%f",m[j]/5);
【解析】由主函數(shù)中的函數(shù)調(diào)用可知,函數(shù)proe( )沒有返回值。因此“int proc(void)”應(yīng)改為“void proc(void)”。題目中要求使數(shù)組中元素的值縮小到l/5,而不是對5取余。因此,“printf("%f",m[j]%5);”應(yīng)改為“printf(”%f”,mEjl/5);”。
三、程序設(shè)計(jì)題
void proc(STREC a[])
{
int i,j;
STREC t;
for(i=1;ifor(j=0;jif(a[j].s{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
【解析】要按分?jǐn)?shù)的高低排列學(xué)生的記錄,可以使用冒泡排序法。將每一個(gè)學(xué)生的成績與其他學(xué)生的成績相比較,對不符合要求的記錄交換位置。
看了“國家計(jì)算機(jī)二級c語言考試題庫”的人還看了:
2.2015年計(jì)算機(jī)二級C語言測試題及答案解析
4.2015年全國計(jì)算機(jī)考試二級C語言模擬卷
國家計(jì)算機(jī)二級c語言考試題庫
下一篇:沒有了