c語言填空2答案,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中。現已將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)

2道C語言填空題,求幫助,急

1.

#includestdio.h

int move(int *arr,int n,int m)

{

int *p,array_end;

array_end=*(arr+n-1);

for(p=arr+n-1;parr;p–)

*p=*(p-1);

*arr=array_end;

m–;

if(m0) move(arr,n,m);

return *arr;

}

int main()

{

int number[20],n,m,i;

printf(“the total numbers is:\n”);

scanf(“%d”,n);

printf(“back m:\n”);

scanf(“%d”,m);

for(i=0;in-1;i++)

scanf(“%d,”,number[i]);

scanf(“%d”,number[n-1]);

move(number,n,m);

for(i=0;in-1;i++)

printf(“%d,”,number[i]);

printf(“%d”,number[n-1]);

}

2.

#include stdio.h

#include stdlib.h

int main()

{

int a,b,*p1,*p2;

p1=(int *)malloc(sizeof(int));

p2=(int*)malloc(sizeof(int));

scanf(“%d%d”,p1,p2);

if(*p2*p1) *p1=*p2;

free(p2);

printf(“max=%d\n”,*p1);

return 0;

}

2個C語言填空

1、正確答案D

原題中swap函數的兩個參數分別是int p和int q,實際在主程序調用swap時,swap內部的賦值改變的只是參數值的副本,返回後主程序內部的a、b變數並沒有因其副本內容的改變而變化,所以必須改寫swap函數,將要交互的變數地址作為指針型的參數傳給swap,才能在swap中直接修改main中的變數。

修改後的swap函數可以是:

swap( int *p, int *q )

{int t;

t=*p; *p=*q; *q=t;

}

因此原題中答案A明顯錯誤。答案B雖然能去掉編譯過程中的參數類型不匹配的警告,但運行結果是錯誤的(原因見上)。答案C錯在不僅要改變形參中p、q的類型(int改為int*),還要相應改變swap函數內部的賦值語句。所以D是正確的。

2、正確答案A

malloc分配了一塊20位元組的內存、並通過賦值語句將指針p指向該內存區域,之後馬上將q也指向這裡,這就是說q和p指向的是同一塊內存區域。

scanf會將輸入的abc def按空白字元分解為abc和def兩個部分,先將abc放入p指向的地方,然後再將def放入q指向的地方。然而p與q指向的是同一塊內存區域,因此def會將之前的abc覆蓋掉,導致輸出了兩次def,即def def。即選項A。

C語言二級填空題求解

#include stdio.h

#include string.h

#define N 5

#define M 8

void fun(char (*ss)[M])

{ char *ps[N],*tp; int i,j,k;

for(i=0; iN; i++) ps[i]=ss[i]; //改為指針操作

for(i=0; iN-1; i++) {

/**********found**********/

k= __1__ ;

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

/**********found**********/

if(strlen(ps[k]) strlen(__2__) ) k=j;

//這裡對比兩個字元串的長度,看整個程序的演算法設計是

//從第一個字元串開始,用這個字元串和後面的字元串相比較,

//如果這個字元串的長度比後面的小,則交換

//否則再取後面一個字元串比較

//所以這裡的答案是: ps[j]

//而前面一個空中的答案是 i;

//這裡可以對比一下後面第三空的內容

//試著想像一下有兩個字元串的字元串數組的操作

//稍微複雜點的是三個字元串

//這個程序的設計有點問題,參數有冗餘

/**********found**********/

tp=ps[i]; ps[i]=ps[k]; ps[k]= __3__ ; // ps[k]=tp;

//這裡用一個臨時變數,用於交換ps[i]指向的字元串和ps[k]指向的字元串

//和int a,b;的聲明中,交換a、b的數值相同,採用臨時變數先保存a,

//然後a賦值為b,結果a的值得到了交換。b的值而後賦值為原來的a,

//也就是那個臨時變數。

}

printf(“\nThe string after sorting by length:\n\n”);

for(i=0; iN; i++) puts(ps[i]);

}

main()

{ char ch[N][M]={“red”,”green”,”blue”,”yellow”,”black”};

int i;

printf(“\nThe original string\n\n”);

for(i=0;iN;i++)puts(ch[i]); printf(“\n”);

fun(ch);

}

C語言填空題 求正確答案 感謝

  1 #include stdio.h

  2 typedef char * STR;

  3 

  4 int main(void)

  5 {

  6     STR s=”helloworld!”;

  7     printf(“%s\n”, s);

  8     printf(“%d%d%d\n”, -10-110, -10-10, -1010);

  9     int a[3][6];

 10     printf(“sizeof(int):%d, sizeof(a[0]):%ld\n”,sizeof(int), sizeof(a[0]));

 11     return 0;

 12 }

 13

運行結果如下:

zh@zh-CW65S:~/work$ gcc test.c

test.c: In function 『main』:

test.c:10:2: warning: format 『%d』 expects argument of type 『int』, but argument 2 has type 『long unsigned int』 [-Wformat=]

  printf(“sizeof(int):%d, sizeof(a[0]):%ld\n”,sizeof(int), sizeof(a[0]));

  ^

zh@zh-CW65S:~/work$ ./a.out 

helloworld!

000

sizeof(int):4, sizeof(a[0]):24

C語言填空題第二題

10 二進位00001010

1 00010100

1 00000001

101^1 00010101

八進位值是25

原創文章,作者:EDFD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/146716.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
EDFD的頭像EDFD
上一篇 2024-10-31 15:31
下一篇 2024-10-31 15:31

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • 學堂雲Python語言程序設計答案

    學堂雲Python語言程序設計是一門重要的計算機專業課程。它涵蓋了Python語言及其應用,包括基礎語法、函數、文件處理、數據結構、圖形界面和網路編程等內容。在學習中,我們經常會需…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論