計(jì)算機(jī)二級(jí)c語(yǔ)言考試試題及答案
為幫助同學(xué)們?cè)谟?jì)算機(jī)二級(jí)考試中能輕松通過(guò)考試,百分網(wǎng)小編為大家整理了歷年的計(jì)算機(jī)二級(jí)考試題及答案,希望對(duì)大家有所幫助!
計(jì)算機(jī)考試題【一】
1.若以下對(duì)fun函數(shù)的調(diào)用是正確的:
x=fun(fun(a,b,c),(a+b,a+c),a+b+c);
則fun函數(shù)的形參個(gè)數(shù)為()
A)3 B)4 C)5 D)6
2.若有說(shuō)明:int*p, m=5; n;,以下正確的程序段是()
A)p=&m;
scanf("%d",&p)
B)p=&n;
scanf("%d",&p)
C)scanf("%d",&p)
p=&n;
D)p=&n;
p=&m;
3.以下程序調(diào)用findmax函數(shù)返回?cái)?shù)組中的最大值
findmax(int*a,int n)
{ int*p,*s;
for(p=a,s=a;p-a if()s=p;
return(*s);
}
main()
{ intx[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下劃線處應(yīng)填入的是()
A)p>s B)*p>*s C)a[p]>a[s] D)p-a>p-s
4.若指針p已正確定義,要使p指向兩個(gè)連續(xù)的整型動(dòng)態(tài)存儲(chǔ)單元,則正確語(yǔ)句是()
A)p=2*(int*)malloc(sizeof(int));
B)p=(int*)calloc(2*sizeof(int));
C)p=(int*)malloc(2* sizeof(int));
D)p=2*(int*)calloc(sizeof(int));
5.下列程序的輸出結(jié)果是()
main()
{char *p1,*p2,str[50]="xyz";
p1="abcd";
p2="ABCD";
strcpy(str+2,strcat(p1+2,p2+1));
printf("%s",str);
}
A)xyabcAB B)abcABz C)Ababcz D)XycdBCD
6.以下敘述中不正確的是()
A)一個(gè)變量的作用域完全取決于變量定義語(yǔ)句的位置
B)全局變量可以在函數(shù)以外的任何部位進(jìn)行定義
C)局部變量的“生存期”只限于本次函數(shù)調(diào)用,因此不可能將局部變量的運(yùn)算結(jié)果保存至下一次調(diào)用
D)一個(gè)變量說(shuō)明為static存儲(chǔ)類是為了限制其他編譯單位的引用
7.交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列哪一個(gè)位運(yùn)算符()
A)~ B)& C)^ D)|
8.下面的說(shuō)法不正確的是()
A)函數(shù)調(diào)用時(shí),先求出實(shí)參表達(dá)
B)函數(shù)調(diào)用是在程序運(yùn)行時(shí)處理的,分配臨時(shí)的內(nèi)存單元。而宏展開則是在編譯時(shí)進(jìn)行的,在展開時(shí)也要分配內(nèi)存單元,進(jìn)行值傳遞
C)對(duì)于函數(shù)中的實(shí)參和形參都要定義類型,二者的類型要求一致,而宏不存在類型問(wèn)題,宏名有類型
D)調(diào)用函數(shù)只可得到一個(gè)返回值,而用宏可以設(shè)法得到幾個(gè)結(jié)果
9.fscanf函數(shù)的正確調(diào)用形式是()
A)fscanf(fp,格式字符串,輸出表列);
B)fscanf(格式字符串,輸出表列,fp);
C)fscanf(格式字符串,文件指針,輸出表列);
D)fscanf(文件指針,格式字符串,輸入表列);
10.以下程序的運(yùn)行結(jié)果是()
# define MAX 10
int a[MAX],i;
main()
{ printf("\n");sub1();sub3(a);sub2();sub3(a);
}
sub2()
{ int a[MAX],i,max;
max=5;
for(i=0;i }
sub1()
{for(i=0;i }
sub3(int a[])
{ int i;
for(i=0;i printf("\n");
}
A)0 2 4 6 8 10 12 14 16 18
0 1 2 3 4
B)0 1 2 3 4
0 2 4 6 8 10 12 14 16 18
C)0 1 2 3 4 5 6 7 8 9
0 1 2 3 4
D)0 2 4 6 8 10 12 14 16 18
0 2 4 6 8 10 12 14 16 18
答案:1.A 2.D 3.B 4.C 5.D 6.B 7.C 8.B 9.D 10.D
計(jì)算機(jī)考試題【二】
1.若有如下程序:
main()
{chara[]="china\0name\0";
printf("%d,",strlen(a));
printf("%d\n",sizeof(a));}
則程序運(yùn)行后的'輸出結(jié)果是()
A)5,11 B)5,12 C)11,11 D)12,12
2.指針變量p的基類型為int,并已指向一連續(xù)存儲(chǔ)區(qū),若p中當(dāng)前的地址值為1234,則執(zhí)行p++后,p中的值為()
A)1234 B)1235 C)1236 D)1237
3.函數(shù)調(diào)用“strcat(strcpy(str1,str2),str3)”的功能是()
A)將串str1拷貝到串str2中后再連接到串str3之后
B)將串str1連接到串str2之后再拷貝到串str3之后
C)將串str2拷貝到串str1中后再將串str3連接到串str1之后
D)將串str2連接到串str1之后再將串str1拷貝到串str3中
4.下面宏定義正確的是()
A)#defineSa*b
B)#definePI3.14;
C)#definemax(a,b) ((a)>(b)?(a)∶(b))
D)#defines(x)(x)*(x);
5.下面敘述正確的是()
A)函數(shù)調(diào)用不可以出現(xiàn)在表達(dá)式中
B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
C)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
D)函數(shù)不可以直接調(diào)用其本身
6.有如下程序
#include
main()
{int v1=0,v2=0;
char ch;
while ((ch=getchar())!='#')
switch(ch)
{case ′a′:
case ′h′:
default:v1++;
case ′0′: v2++;
}
printf("%d,%d\n",v1,v2);
}
如果從鍵盤上輸入china#<回車>,則程序運(yùn)行結(jié)果為()
A)2,0 B)5,0 C)5,5 D)2,5
7.程序中頭文件type1.h的內(nèi)容是:
#defineN5
#defineM1N*3
程序如下:
#include"type1.h"
#defineM2N*2
main()
{inti;
i=M1+M2;printf("%d\n",i);}
程序編譯運(yùn)行后的輸出結(jié)果是()
A)10 B)20 C)25 D)30
8.C語(yǔ)言規(guī)定函數(shù)返回值的類型由()
A)在定義時(shí)所指定的函數(shù)類型所決定
B)調(diào)用該函數(shù)時(shí)的主調(diào)函數(shù)類型所決定
C)return語(yǔ)句中的表達(dá)式類型所決定
D)調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定
9.若有如下程序:
main()
{int a[3][4]={1,2,3,4,5,6,7,8,9};
printf("%d%d%d\n",a[0][1],a[1][2],a[2][3]);}
則程序運(yùn)行后的輸出結(jié)果是()
A)270 B)480 C)160 D)不定值
10.以下能將字符串:youareluck!正確讀入的語(yǔ)句組是()
A)chars[80];scanf("%s",s);
B)char*s;scanf("%s",s);
C)chars[80];gets(s);
D)char*s;gets(s);
答案:1.B 2.C 3.C 4.C 5.B 6.C 7.C 8.A 9.A 10.C
計(jì)算機(jī)考試題【三】
1.執(zhí)行下面的程序段
int x=40;
char z=′B′;
int B;
B=((x&0xff)&&(z>′a′));
后,B的值為()
A)0 B)1 C)2 D)3
2.已知下列函數(shù)定義
setw(int *b,int m,int n,int dat)
{ int k;
for(k=0;k {*b=dat;b++;}
}
則調(diào)用此函數(shù)的正確寫法是(假設(shè)變量a的說(shuō)明為int a[50])()
A)setw(*a,5,8,1); B)setw(&a,5,8,1); C)setw((int*)a,5,8,1); D)setw(a,5,8,1);
3.若有以下定義和語(yǔ)句:
double r=99, *p=7;
*p=r;
則以下正確的敘述是()
A)兩處的*p含義相同,都說(shuō)明給指針變量p賦值3
B)在“double r=99, *p=7; *p=r;”中,把r的地址賦給了p所指的存儲(chǔ)單元
C)語(yǔ)句“*p=r;”把變量r的值賦給指針變量p
D)語(yǔ)句“*p=r;”把變量r的值放回p中
4.設(shè)有char str[10],下列語(yǔ)句正確的是()
A)scanf("%s",&str); B)printf("%c",str); C)printf("%s",str[0]); D)printf("%s",str);
5.下列描述說(shuō)明正確的是()
A)定義結(jié)構(gòu)體時(shí),它的每個(gè)成員的數(shù)據(jù)類型可以不同
B)不同結(jié)構(gòu)體的成員名不能相同
C)結(jié)構(gòu)體定義時(shí),其成員的數(shù)據(jù)類型不能是結(jié)構(gòu)體本身
D)結(jié)構(gòu)體定義時(shí)各成員項(xiàng)之間可用分號(hào)也可用逗號(hào)隔開
6.以下函數(shù)的功能是()
intfun(char *a)
{ char*b=a;
while(*b)b++;
{return b-a; }
}
A)比較兩個(gè)字符串的大小 B)字符串的復(fù)制 C)計(jì)算字符串的長(zhǎng)度 D)字符串的連接
7.若有如下程序:
#define X3
#define YX+1
#define ZY*Y/2
main()
{ intn;
for(n=1;n<=Z;n++)printf("%d",n);}
則程序運(yùn)行后的輸出結(jié)果是()
A)12345 B)1234567 C)12345678 D)123456
8.以下敘述中錯(cuò)誤的是()
A)局部變量的定義可以在函數(shù)體和復(fù)合語(yǔ)句的內(nèi)部
B)全局變量的定義可以在函數(shù)以外的任何部位
C)同一程序內(nèi)局部變量和全局變量不允許同名
D)函數(shù)的形參屬于局部變量
9.以下敘述中錯(cuò)誤的是()
A)二進(jìn)制文件打開后可以先讀文件的末尾,而順序文件不可以
B)在程序結(jié)束時(shí),應(yīng)當(dāng)用fclose函數(shù)關(guān)閉已打開的文件
C)在利用fread函數(shù)從二進(jìn)制文件中讀數(shù)據(jù)時(shí),可以用數(shù)組名給數(shù)組中所有元素讀入數(shù)據(jù)
D)不可以用FILE定義指向二進(jìn)制文件的文件指針
10.若fp是指向某文件的指針,且已讀到此文件末尾,則庫(kù)函數(shù)feof(fp)的返回值是()
A)EOF B)0 C)非零值 D)NULL
答案:1.A 2.D 3.D 4.D 5.A 6.C 7.D 8.C 9.D 10.C
計(jì)算機(jī)考試題【四】
1.有以下程序:
main()
{intx=0xFFFF;printf("%d\n",x--);}
執(zhí)行后的輸出結(jié)果是()
A)32767 B)FFFE C)-1 D)-32768
2.以下程序的輸出結(jié)果是()
#include
#include
main()
{ char str[12]={′s′,′t′,′r′,′i′,′n′,′g′};
printf("%d\n",strlen(str));
}
A)6 B)7 C)11 D)12
3.若有以下定義:
char s[20]="programming",*ps=s;
則不能代表字符o的表達(dá)式是()
A)ps+2 B)s[2] C)ps[2] D)ps+=2,*ps