bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

c語言函數類試題及答案 c語言函數類試題及答案大全

求c語言試題及答案!急啊!

c語言考試題(一)

創新互聯主要從事網站設計制作、成都網站建設、網頁設計、企業做網站、公司建網站等業務。立足成都服務鄒城,10余年網站建設經驗,價格優惠、服務專業,歡迎來電咨詢建站服務:028-86922220

一、 單項選擇題(每題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.-12 D.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];brshort y[4];brchar 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++=25b--=2c++) 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;i4;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,則執行表達式:--xy++后,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;brx=1,y=2,z=3; x+=y+=z;brprintf("1:%d\n",z+=xy?x++:y++);brx=0x02ff;y=0xff00;brprintf("2:%d\n",(xy)4|0x005f);brx=y=z=-1; ++x||++y++z;brprintf("3:%d,%d,%d\n",x,y,z);br}

2、#define f(x) x*x

main()

{int a=6,b=2,c;brc=f(a+b)/f(b);brprintf(“%d\n”,c);br}

3、fun(int k)

{ printf("%d",k);

if(k0)

fun(k-1);

}

main( )

{ int w=5; fun(w); printf("\n"); }

4、#include

main()

{int x=1,y=0;brswitch(x)br{ case 1:brswitch(y)br{ case 0:printf(“first\n”);break;brcase 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;brvoid fc();brif((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;brwhile((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;i3; ① )

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;i7;i+=2)

for(j=i+2;j8; ① )

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(int?。?,float *p)

{……………}

則此函數的兩個參數類型分別是_______________ 、 _____________________。

8. 設int x,y,z=4;

x=y=++z;

x=(yz)?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.(xy)(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;i9;i++)

if(scoreiMax)

{

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;i10;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=panduan( n);

if(s==1)printf(“yes\n”);

else printf(“no\n);

}

int panduan(int n)

{

int k,j;

k=(int)sqrt((double)n);

for(j=2;j=k,j++)

{

if(n%j==0) break;

}

if(jk) 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; i9;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; i9; i++)

{

iMin=0; 改正為_______________________。

for (j=i+1; j10;j++)

if(a[iMin] iMin="j;"改正為_______________________。

if (iMin==i) 改正為_________________________。

{ iTemp=a;

a[iMin]=a; 改正為_________________________。

a[iMin]=iTemp;

}

}

for(i=0; i10; i++)

printf(“%4d”, a):

}

4. 源程序為求平均值。

#include

void main(void)

{

int i, sum; 改正為____________________。

float avg;

int sc[10], *p=sc;

for (i=0, i10; 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(t1e-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; i36; 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; i3; i++)

for(j=0; j3; 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語言真題及答案

C語言試題及答案(2)

main()

{ int k, a[10]={1,2,3,4,5};

for(k=1; k3; k++) fun(a);

for(k=0; k5; k++) printf("%d", a[k]);

}

上面程序的輸出結果是

A.34756

B.23445

C.35743

D.12345

(40) 請讀程序:

#include

#define SUB(X,Y) (X)*Y

main()

{ int a=3, b=4;

printf("%d", SUB(a++, b++));

}

上面程序的輸出結果是

A.12

B.15

C.16

D.20(41) 請讀程序:

#include

main()

{ int mun=0;

while(num=2)

{ num++; printf("稿告%d\n",num);}

}

上面程序的輸出結果是

A.1

B.1

C.1

D.1

2 2 2

3 3

4

(42) 請讀程序:

#include

main()

{ float x,y;

scan("%f",x);

if(x0.0) y=0.0

else if((x5.0)(x!=2.0))

y=1.0/(x+2.0);

else if (x10.0) y=1.0/x;

else y=10.0;

printf("%f\n",y);

}

若運行時從鍵盤上輸入2.0(表示回車),則上面程序的輸出結果是

A.0.000000

B.0.250000

C.0.500000

D.1.000000

(43) 請讀程物好序:

#include

main()

{ int x=1, y=0, a=0, b=0;

switch(x)

{ case 1:

switch(y)

{ case 0: a++;break;

case 1: b++;break;

}

case 2:

a++; b++; break;

 罩敬鉛 }

printf("a=%d, b=%d\n",a,

B.;

}

上面程序的輸出結果是

A.a=2, b=1

B.a=1, b=1

C.a=1, b=0

D.a=2, b=2

(44) 若有下面的程序片段:

int a[12]={0}, *p[3], **pp, i;

for(i=0; i3; i++)

p[i]=a[i*4];

pp=p;

則對數組元素的錯誤引用是

A.pp[0][1]

B.a[10]

C.p[3][1]

D.*(*(p+2)+2)

(45) 請讀程序:

#include

#include

main()

{ float x,y,z;

scan("%f%f",x,y);

z=x/y;

while(1)

{ if(fabs(z)1.0)

{ x=y; y=z; z=x/y;

}

else break

}

printf("%f\n",y);

}

若運行時從鍵盤上輸入3.6 2.4(表示回車),則輸出的結果是

A.1.500000

B.1.600000

C.2.000000

D.2.400000

(46) 請讀程序:

#include

f(in b[], int n)

{ int i, r;

r=1;

for(i=0; i=n; i++) r=r*b[i];

return r;

}

main()

{ int x, a[]={ 2,3,4,5,6,7,8,9};

x=f(a, 3);

printf("%d\n",x);

}

上面程序的輸出結果是

A.720

B.120

C.24

D.6

(47) 請讀程序:

#include

#include

void fun( char *s)

{ char a[10];

strcpy( a, "STRING");

s=a;

}

main()

{ char *p;

fun(p);

x=f(a, 3);

printf("%s\n",p);

}

上面程序的輸出結果是(└┘表示空格)

A.STRING└┘└┘└┘└┘

B.STRING

C.STRING└┘└┘└┘

D.不確定的值

(48) 若已建立下面的鏈表結構,指針p、s分別指向圖中所示的結點,則不能將s所指的結點插入到鏈表末尾的語句組是

A.s-next=NULL; p=p-next; p-next=s;

B.p=p-next; s-next=p-next; p-next=s;

C.p=p-next; s-next=p; p-next=s;

D.p=(*p).next; (*s).next=(*p).next; (*p).next=s;

(49) 請讀程序:

#include

void fun(float *pl, float *p2, float *s)

{ s=( float * )calloc( 1, sizeof(float));

*s=*p1+ *(p2++);

}

main()

{ float a[2]={1.1, 2.2}, b[2]={10.0, 20.0}, *s=a;

fun(a, b, s)

printf("%f\n",*s);

}

上面程序的輸出結果是

A.11.100000

B.12.100000

C.21.100000

D.1.100000

(50) 請讀程序:

#include

#include

void fun( char *w, int m)

{ char s, *p1, *p2;

p1=w; p2=w+m-1;

while (p1{ s=*p1++; *p1=*p2--; *p2=s;}

}

main()

{ char a[]="ABCDEFG";

fun( a, strlen(a));

puts(a);

}

上面程序的輸出結果是

A.GFEDCBA

B.AGADAGA

C.AGAAGAG

D.GAGGAGA

二、填空題(每空2分,共40分)

請將每空的正確答案寫在答題卡上【1】-【20】序號后的橫線上,答在試卷上不得分。

(1) DOS命令分為內部命令與外部命令,XCOPY命令是 【1】 命令

(2) 為了列出當前盤當前目錄中所有第三個字符為C的文件名的有關信息,應該用命令 【2】 。

(3) 設當前盤為A盤,當前目錄為\X\Y,A盤上的一個文件QR.C在當前目錄下的子目錄W中?,F已將A盤的當前目錄改為\D\XY,當前盤改為C盤,如需指定A盤上該文件應寫成 【3】 。

(4) 用十六進制給存儲器中的字節地址進行編號,其地址編號是從0000到FFFF,則該存儲器的容量是【4】KB。

(5) 設有兩個八位二進制數00010101與01000111相加,其結果的十進制表示為 【5】 。

(6) 數學式子 寫成C語言表達式是 【6】 。

(7) 下面程序的輸出結果是 【7】 。

#include

main()

{ static char b[]="Goodbye";

char *chp=b[7];

while( --chp =b[0]) putchar( *chp);

putchar(’\n’);

}

(8) 下面程序的輸出結果是 【8】 。

#include

void as( int x, int y, int *cp, int *dp)

{ *cp=x+y;

*dp=x-y;

}

main()

{ int a=4, b=3, c, d;

as( a, b, c, d);

printf( ’%d %d\n", c, d);

}

(9) 請讀程序:

#include

main( int argc, char *argv[])

{ int i;

printf( ’%d\n", argc);

for( i=0; i=argc+1; i++) printf( "%s ", argv[i]);

printf("\n");

}

若上面的程序編譯、連接后生成可執行文件ABC.EXE,則輸入以下命令行

abc file1 file2(表示回車)

程序執行后的輸出結果是 【9】 。

(10) 條件“20(11) 設二進制數a是00101101,若想通過異或運算a^b使a的高4位取反,低4位不變,則二進制數b應是 【11】 。

(12) 若有以下說明和定義語句,則變量w在內存中所占的字節數是 【12】 。

union aa

{ float x, y;

char c[6];

};

struct st { union aa v; float w[5]; double ave; } w;

(13) 下面程序的輸出結果是 【13】 。

#include

#define N 5

fun( char *s, char a, int n)

{ int j;

*s=a; j=n;

while( ereturn j;

}

main()

{ char s[N+1];

int k, p;

for( k=1; k=N; k++)

s[k]=’A’+k+1;

printf( "%d\n", fun(s, ’E’, N));

}(14) 下面程序的輸出結果是 【14】 。

#include

void fun( char *a1, char *a2, int n)

{ int k;

for( k=0; ka2[k]=( a1[k]-’A’-3+26)+’A’;

a2[n]=’\0’;

}

main()

{ char s1[5]="ABCD", s2[5];

fun( s1, s2, 4);

puts( s2);

}

(15) 下面的findmax函數返回數組s中最大元素的下標,數組中元素的個數由t傳入,請填空。

findmax( int s[], int t)

{ int k, p;

for( p=0, k=p; pif( s[p]s[k]) 【15】 。

return k;

}

(16) 下面程序的輸出結果是 【16】 。

#include

fun( int x)

{ int p;

if( x==0||x==1) return(3);

p=x-fun( x-2);

return p;

}

main()

{ printf( "%d\n", fun(9));}

(17) 下面程序的輸出結果是 【17】 。

#include

funa( int a, int b)

{ return a+b;}

funb( int a, int b)

{ return a-b;}

sub( int (*t)(), int x, int y)

{ return((*t)( x,y));}

main()

{ int x, (*p)();

p=funa;

x=sub(p,9,3);

x+=sub(funb, 8, 3);

printf("%d\n", x);

}

(18) 下面程序的輸出結果是 【18】 。

#include

main()

{ char *p[]={ "BOOL", "OPK", "H", "SP"};

int i;

for(i=3; i=0; i--,i--) printf( "%c", *p[i]);

printf("\n");

}

(19) 為了建立如圖所示的存儲結構(即每個結點含兩個域,data是數據域,next是向結點的指針域),請填空。

data next

struct link { char data; 【19】 } node;

(20) 下面的程序用來統計文件中字符的個數,請填空。

#include

main()

{ FILE *fp;

long num=0;

if(( fp=fopen("fname.dat","r"))==NULL)

{ printf( "Can’t open file! \n"); exit(0);}

while 【20】

{ fgetc(fp); num++;}

printf("num=%d\n", num);

fclose(fp);

}

參考答案

一`選擇題((1)~(40)題每題1分,(41)~(50)題每題2分,共60分)

(1)C (2)A (3)B (4)D (5)D (6)A (7)C (8)B (9)D (10)C

(11)B (12)D (13)A (14)C (15)B (16)A (17)B (18)A (19)C (20)C

(21)D (22)B (23)B (24)A (25)C (26)D (27)D (28)B (29)C (30)A

(31)B (32)B (33)D (34)C (35)A (36)C (37)A (38)B (39)C (40)A

(41)C (42)C (43)A (44)C (45)B (46)B (47)D (48)C (49)D (50)C

二` 填空題(每空2分,共40分)

(第(2)`(3)空允許小寫或大小寫混合使用,其它空均須與答案一樣)

(1) 外部

(2) DIR ?? C*.*

(3) A:\X\Y\W\QR.C

(4) 64

(5) 92

(6) pow(sin(x),2) * (a+b)/(a-b) 或 sit(x) * sit(x) * (a+b)/(a-b)

(7) eybdooG

(8) 7 1

(9) 3 abc.exe file1 file2 (注:兩個答案,每個1分)

(10) ((20 (11) 11110000

(12) 34

(13) 3

(14) XYZA

(15) k=p

(16) 7

(17) 17

(18) SO

(19) struct link *next

(20) (!feof(fp))或(feof(fp)==0)

C語言試題,那位大神幫忙給個答案

◆單選題 共(40 分)

1、在C語言中, char型數據在內存中的存儲形式是:___A___

A、補碼

B、反碼

C、原碼

D、ASCII碼

2、已知int i, x[3][4];則不能將x[1][1]的值賦給變量i的語句是___C___

A、i=*(*(x+1))

B、i=x[1][1]

C、i=*(*(x+1))

D、i=*(x[1]+1)

3、以下敘述正確的是__D____

A、在C程序中,main函數必須位于程序的最前面

B、C程序的每行中只能寫一條語句

C、C語言本身沒有輸入輸出語句

D、在對一個C程序進行編譯的過程中,可發現注釋中的拼寫錯誤

4、若x=2,y=3則x||y的結果是__B____

A、0

B、3

C、1

D、2

5、若有以下說明語句:char s='\\\092';則下面哪一項是正確的__B____

A、使s的值包含2個字符

B、說明語句不合法

C、使s的值包含6個字符

D、使s的值包含4個字符

6、一個C程序的執行是從_A_____

A、本程序的main函數開始,到main函數結束

B、本程序文件的第一個函數開始,到本程序文件的最后一個函數結束

C、本程序的main函數開始,到本程序文件的最后一個函數結束

D、本程序文件的第一個函數開始,到本程序main函數結束

7、已知int a[10];則對a數組元素的正確引用是______ 沒有正確的,AC相同,應該是選項有問題。

A、a[10]

B、a[3.5]

C、a[10]

D、a(5)

8、若希望當A的值為奇數時,表達式的值為"真",A的值為偶數表達式的值為"假"。則以下不能滿足要求的表達式是___C___

A、A%2= =1

B、!(A%2 = =0)

C、!(A%2)

D、A%2

9、在C語言的if語句中,用作判斷的表達式為___B___

A、關系表達式

B、邏輯表達式

C、算術表達式

D、任意表達式

10、C語言程序由什么組成?___C___

A、子程序

B、主程序和子程序

C、函數

D、過程

11、已知static int a[2][3]={2,4,6,8,10,12}; 正確表示數組元素地址的是___C___

A、*(a[1]+2)

B、a[1]+3

C、*(a+1)

D、a[0][0]

12、075的十進制寫法搜配判為___,十六進制寫法為___。 C

A、0x4b 0113

B、0165 117

C、61 0x3d

D、0x4b 61

13、在C語言中,字符型數據在內存中的存儲形式是__B____

A、原碼

B、補碼

C、反碼

D、ASCII碼

14、( )以下關于數組世改的描述正確的是 C

A、數組大小固定,但是可以有不同類型的數組元素

B、數組大小可變,但是所有數組元素的類型必須相同

C、數組大小固定,所有元素的類型必須相賣拆同

D、數組大小可變,可以有不同類型的數組元素

15、在C語言中,要求運算數必須是整型的運算符是__D___

A、/

B、++

C、!=

D、%

16、( A)若有以下定義:char s[20]= "programming",*ps=s;則不能代表字符g的表達式是

A、ps+3

B、s[3]

C、ps[3]

D、ps+=3,*ps

17、(D )選擇正確的輸入語句( )。:(其中:char string[20];)使得string的內容為"I am student". D

A、scanf("%s", string);

B、scanf("%c", string);

C、scanf("%s", string);

D、gets(string);

18、已知char b[5], *p=b;則正確的賦值語句是。__C____

A、b=”abcd”

B、*b=”abcd”;

C、p=”abcd”;

D、*p=”abcd”;

19、printf函數中用到格式符%5s,其中數字5表示輸出的字符串占用5列。如果字符串長度大于5,則輸出按方式___B___

A、從左起輸出該字串,右補空格

B、按原字符長從左向右全部輸出

C、右對齊輸出該字串,左補空格

D、輸出錯誤信息

20、75的十六進制寫法為___,八進制寫法為______ C

A、0x4b 0113

B、0165 117

C、61 0x3d

D、0x4b 61

2018年計算機二級考試C語言試題及答案(3)

2018年計算機二級考試C語言試題及答案(3)

1[單選題] 以下敘述中正確的是

A.兩個字符串可以用關系運算符進行大小比較

B.函數調用strlen(s);會返回字符串S實際占用內存的大小(以字節為單位)

C.C語言本身沒有提供對字符串進行整體操作的運算符

D.當拼接兩個字符串時,結果字符串占用的內存空間是兩個原串占用空間的和

參考答案:C

參考解析:本題考查字符串處理函數strien、strcat、strcmp。B選項中strlen返回的是字符串s實際占用內存大小加上結尾符,A選項中不能用關系運算符進行大小比較,可以使用strcmp。D選項當使用連接函數strcat時,內存空間會減少一個字符位置。

2[單選題] 一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯系是( )。

A.一對一B.一對多C.多對多D.多對一

參考答案:C

參考解析:因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。

3[單選題] 對于while(!E)s;,若要執行循環體s,則E的取值應為:

A.E等于1B.E不等于0C.E不等于1D.E等于0

參考答案:D

參考解析:while語句的一般形式為:while(表達式)語句;其中表達式是循環條件,語句為循環體。while語句的語義是:計算表達式的值,當值為真(非0)時,執行循環體語句。該題中如要執行語句s,則!E應為真,因此E應等于0,D選項正確。

4[單選題喚螞] 在軟件設計中不使用的工具是( )。

A.系統結構圖B.PAD圖C.數據流圖(DFD圖)D.程序流程圖

參考答案:C

參考解析:系統結構圖是對軟件系統結構的總體設計的圖形顯示。在需求分析階段,已經從系統開發的角度出發,基好把系統按功能逐次分割成層次結構,是在概要設計階段用到的。PAD圖是在詳細設計階段用到的。程序流程圖是對程序流程的圖形表示,在詳細設計過程中用到。數據流圖是結構化分析方法中使用的工具,它以圖形的方式描繪數據在系統中流動和處理的過程,由于它只反映系統必須完成的邏輯功能,所以它是一種功能模型,是在可行性研究階段用到的而非軟件設計時用到,所以選擇C。

5[單選題] 若有定義語句:char a='\82';則變量a()

A.說明不合法B.包含1個字符C.包含2個字符D.包含3個字符

參考答案:搏鏈鉛B

參考解析:char a='\82',定義字符量a,char型變量值為1個字節長度,并從右側開始運算,所以a的值應為'2'。因此B選項正確。

6[單選題] 若fp已定義為指向某文件的指針,且沒有讀到該文件的末尾,則C語言函數feof(fp)的函數返回值是

A.EOFB.非0C.-1D.0

參考答案:D

參考解析:本題考查文件的定位,feof函數的用法是從輸入流讀取數據,如果到達文件末尾(遇文件結束符),eof函數值為非零值,否則為0,所以選項D正確。

7[單選題] 以下敘述中正確的是

A.只要適當地修改代碼,就可以將do-while與while相互轉換

B.對于“for(表達式1;表達式2;表達式3)循環體”首先要計算表達式2的值,以便決定是否開始循環

C.對于“for(表達式1;表達式2;表達式3)循環體”,只在個別情況下才能轉換成while語句

D.如果根據算法需要使用無限循環(即通常所稱的“死循環”),則只能使用while語句

參考答案:A

參考解析:B選項中,for語句中需要先求解先求解表達式1;C選項中,for語句使用最為靈活,它完全可以取代while語句;D選項中,對于死循環,也可以使用for語句。因此A選項正確。

名稱欄目:c語言函數類試題及答案 c語言函數類試題及答案大全
路徑分享:http://vcdvsql.cn/article30/ddpshso.html

成都網站建設公司_創新互聯,為您提供App設計手機網站建設電子商務軟件開發、網站改版、小程序開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站托管運營