當前位置:首頁 » 編程語言 » c語言程序設計答案沈顯君

c語言程序設計答案沈顯君

發布時間: 2023-04-19 01:29:38

A. c語言二級考試題及答案

2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計
(考試時間90分鍾,滿分100分)

一、 選擇題(1-10,21-40每題2分,11-20每題1分,共70分)

(1)下列關於棧敘述正確的是
A)棧頂元素最先能被刪除
B)棧頂元素最後才能被刪除
C)棧底元素永遠不能被刪除
D)以上三種說法都不對

(2)下列敘述中正確的是
A)有一個以上根結點的數據結構不一定是非線性結構
B)只有一個根結點的數據結構不一定是線性結構
C)循環鏈表是非線性結構
D)雙向鏈表是非線性結構

(3)某二叉樹共有7個結點,其中葉子結點只有1個,則該二叉樹的深度為(假設根結點在第1層)
A)3 B)4 C)6 D)7

(4)在軟體開發中,需求分析階段產生的主要文檔是
A)軟體集成測試計劃 B)軟體詳細設計說明書
C)用戶手冊 D)軟體需求規格說明書

(5)結構化程序所要求的基本結構不包括
A)順序結構 B)GOTO跳轉
C)選擇(分支)結構 D)重復(循環)結構

(6)下面描述中錯誤的是
A)系統總體結構圖支持軟體系統的詳細設計
B)軟體設計是將軟體需求轉換為軟體表示的過程
C)數據結構與資料庫設計是軟體設計的任務之一
D)PAD圖是軟體詳細設計的表示工具

(7)負責資料庫中查詢操作的資料庫語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言

(8)一個教師可講授多門課程,一門課程可由多個教師講授。則實體教師和課程間的聯系是
A)1:1聯系 B)1:m聯系
C)m:1聯系 D)m:n聯系

(9)有三個關系R、S和T如下:


則由關系R和S得到關系T的操作是
A)自然連接 B)交 C)除 D)並

(10)定義無符號整數類為UInt,下面可以作為類UInt實例化值的是
A)-369 B)369 C)0.369 D)整數集合{1,2,3,4,5}

(11)計算機高級語言程序的運行方法有編譯執行和解釋執行兩種,以下敘述中正確的是
A)C語言程序僅可以編譯執行
B)C語言程序僅可以解釋執行
C)C語言程序既可以編譯執行又可以解釋執行
D)以上說法都不對

(12)以下敘述中錯誤的是
A)C語言的可執行程序是由一系列機器指令構成的
B)用C語言編寫的源程序不能直接在計算機上運行
C)通過編譯得到的二進制目標程序需要連接才可以運行
D)在沒有安裝C語言集成開發環境的機器上不能運行C源程序生成的.exe文件

(13)以下選項中不能用作C程序合法常量的是
A)1,234 B)'123'
C)123 D)"\x7G"

(14)以下選項中可用作C程序合法實數的是
A).1e0 B)3.0e0.2
C)E9 D)9.12E

(15)若有定義語句:inta=3,b=2,c=1;,以下選項中錯誤的賦值表達式是
A)a=(b=4)=3; B)a=b=c+1;
C)a=(b=4)+c; D)a=1+(b=c=4);

(16)有以下程序段
char name[20];
int num;
scanf("name=%s num=%d",name;&num);
當執行上述程序段,並從鍵盤輸入:name=Lili num=1001<回車>後,name的值為
A)Lili B)name=Lili C)Lili num= D)name=Lili num=1001

(17)if語句的基本形式是:if(表達式)語句,以下關於「表達式」值的敘述中正確的是
A)必須是邏輯值 B)必須是整數值
C)必須是正數 D)可以是任意合法的數值

(18)有以下程序
#include
main()
{ int x=011;
printf("%d\n",++x);
}
程序運行後的輸出結果是
A)12 B)11 C)10 D)9

(19)有以下程序
#include
main()
{ int s;
scanf("%d",&s);
while(s>0)
{ switch(s)
{ case1:printf("%d",s+5);
case2:printf("%d",s+4); break;
case3:printf("%d",s+3);
default:printf("%d",s+1);break;
}
scanf("%d",&s);
}
}
運行時,若輸入1 2 3 4 5 0<回車>,則輸出結果是
A)6566456 B)66656 C)66666 D)6666656

(20)有以下程序段
int i,n;
for(i=0;i<8;i++)
{ n=rand()%5;
switch (n)
{ case 1:
case 3:printf("%d\n",n); break;
case 2:
case 4:printf("%d\n",n); continue;
case 0:exit(0);
}
printf("%d\n",n);
}
以下關於程序段執行情況的敘述,正確的是
A)for循環語句固定執行8次 B)當產生的隨機數n為4時結束循環操作
C)當產生的隨機數n為1和2時不做任何操作D)當產生的隨機數n為0時結束程序運行

(21)有以下程序
#include
main()
{ char s[]="012xy\08s34f4w2";
int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
程序運行後的輸出結果是
A)0 B)3 C)7 D)8

(22)若i和k都是int類型變數,有以下for語句
for(i=0,k=-1;k=1;k++) printf("*****\n");
下面關於語句執行情況的敘述中正確的是
A)循環體執行兩次B)循環體執行一次C)循環體一次也不執行D)構成無限循環

(23)有以下程序
#include
main()
{ char b,c; int i;
b='a'; c='A';
for(i=0;i<6;i++)
{ if(i%2) putchar(i+b);
else putchar(i+c);
} printf("\n");
}
程序運行後的輸出結果是
A)ABCDEF B)AbCdEf C)aBcDeF D)abcdef

(24)設有定義:doublex[10],*p=x;,以下能給數組x下標為6的元素讀入數據的正確語句是
A)scanf("%f",&x[6]); B)scanf("%lf",*(x+6));
C)scanf("%lf",p+6); D)scanf("%lf",p[6]);

(25)有以下程序(說明:字母A的ASCII碼值是65)
#include
void fun(char *s)
{ while(*s)
{ if(*s%2) printf("%c",*s);
s++;
}
}
main()
{ char a[]="BYTE";
fun(a); printf("\n");
}
程序運行後的輸出結果是
A) BY B) BT C) YT D) YE

(26)有以下程序段
#include
main()
{ …
while( getchar()!='\n');

}
以下敘述中正確的是
A)此while語句將無限循環
B) getchar()不可以出現在while語句的條件表達式中
C)當執行此while語句時,只有按回車鍵程序才能繼續執行
D)當執行此while語句時,按任意鍵程序就能繼續執行

(27)有以下程序
#include
main()
{ int x=1,y=0;
if(!x) y++;
else if(x==0)
if (x) y+=2;
else y+=3;
printf("%d\n",y);
}
程序運行後的輸出結果是
A)3 B)2 C)1 D) 0

(28)若有定義語句:chars[3][10],(*k)[3],*p;,則以下賦值語句正確的是
A)p=s; B)p=k; C)p=s[0]; D)k=s;

(29)有以下程序
#include
void fun(char *c)
{ while(*c)
{ if(*c>='a'&&*c<='z') *c=*c-('a'-'A');
c++;
}
}
main()
{ char s[81];
gets(s); fun(s); puts(s):
}
當執行程序時從鍵盤上輸入Hello Beijing<回車>,則程序的輸出結果是
A)hello beijing B)Hello Beijing C)HELLO BEIJING D)hELLO Beijing

(30)以下函數的功能是:通過鍵盤輸入數據,為數組中的所有元素賦值。
#include
#define N 10
void fun(int x[N])
{ int i=0;
while(i<>
}
在程序中下劃線處應填入的是
A)x+i B)&x[i+1]C)x+(i++) D)&x[++i]

(31)有以下程序
#include
main()
{ char a[30],b[30];
scanf("%s",a);
gets(b);
printf("%s\n %s\n",a,b);
}
程序運行時若輸入:
how are you? I am fine<回車>
則輸出結果是
A)how are you? B)how I am fine are you? I am fine
C)how are you? I am fine D)row are you?

(32)設有如下函數定義
int fun(int k)
{ if (k<1) return 0;
else if(k==1) return 1;
else return fun(k-1)+1;
}
若執行調用語句:n=fun(3);,則函數fun總共被調用的次數是
A)2 B)3 C)4 D)5

(33)有以下程序
#include
int fun (int x,int y)
{ if (x!=y) return ((x+y);2);
else return (x);
}
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)有以下程序
#include
int fun()
{ static int x=1;
x*=2;
return x;
}
main()
{ int i,s=1;
for(i=1;i<=3;i++) s*=fun();
printf("%d\n",s);
}
程序運行後的輸出結果是 A)0 B)10 C)30 D)64

(35)有以下程序
#include
#define S(x) 4*(x)*x+1
main()
{ int k=5,j=2;
printf("%d\n",S(k+j));
}
程序運行後的輸出結果是 A)197 B)143 C)33 D)28

(36)設有定義:struct {charmark[12];int num1;double num2;} t1,t2;,若變數均已正確賦初值,則以下語句中錯誤的是
A)t1=t2; B)t2.num1=t1.num1;C)t2.mark=t1.mark; D)t2.num2=t1.num2;

(37)有以下程序
#include
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)4,1 C)3,4 D)2,3

(38)有以下程序
#include
struct S
{ int a,b;}data[2]={10,100,20,200};
main()
{ struct S p=data[1];
printf("%d\n",++(p.a));
}
程序運行後的輸出結果是 A)10 B)11 C)20 D)21

(39)有以下程序
#include
main()
{ unsigned char a=8,c;
c=a>>3;
printf("%d\n",c);
}
程序運行後的輸出結果是 A)32 B)16 C)1 D)0

(40)設fp已定義,執行語句fp=fopen("file","w");後,以下針對文本文件file操作敘述的選項中正確的是
A)寫操作結束後可以從頭開始讀 B)只能寫不能讀
C)可以在原有內容後追加寫 D)可以隨意讀和寫

二、填空題
(1)有序線性表能進行二分查找的前提是該線性表必須是 【1】 存儲的。

(2)一棵二叉樹的中序遍歷結果為DBEAFC,前序遍歷結果為ABDECF,則後序遍歷結果為 【2】 。

(3)對軟體設計的最小單位(模塊或程序單元)進行的測試通常稱為【3】 測試

(4)實體完整性約束要求關系資料庫中元組的 【4】 屬性值不能為空。

(5)在關系A(S,SN,D)和關系B(D,CN,NM)中,A的主關鍵字是S,B的主關鍵字是D,則稱 【5】 是關系A的外碼。


(6)以下程序運行後的輸出結果是 【6】。
#include
main()
{ int a;
a=(int)((double)(3/2)+0.5+(int)1.99*2);
printf("%d\n",a);
}

(7)有以下程序
#include
main()
{ int x;
scanf("%d",&x);
if(x>15) printf("%d",x-5);
if(x>10) printf("%d",x);
if(x>5) printf("%d\n",x+5);
}
若程序運行時從鍵盤輸入12<回車>,則輸出結果為 【7】 。

(8)有以下程序(說明:字元0的ASCII碼值為48)
#include
main()
{ char c1,c2;
scanf("%d",&c1);
c2=c1+9;
printf("%c%c\n",c1,c2);
}
若程序運行時從鍵盤輸入48<回車>,則輸出結果為 【8】 。

(9)有以下函數
void prt(char ch,int n)
{ int i;
for(i=1;i<=n;i++)
printf(i%6!=0?"%c":"%c\n",ch);
}
執行調用語句prt('*',24);後,函數共輸出了 【9】 行*號。

(10)以下程序運行後的輸出結果是 【10】。
#include
main()
{ int x=10,y=20,t=0;
if(x==y)t=x;x=y;y=t;
printf("%d %d\n",x,y);
}

(11)己知a所指的數組中有N個元素。函數fun的功能是,將下標k(k>0)開始的後續元素全部向前移動一個位置。請填空。
void fun(int a[N],int k)
{ int i;
for(i=k;i
}

(12)有以下程序,請在 【12】 處填寫正確語句,使程序可正常編譯運行。
#include
【12】 ;
main()
{ double x,y,(*p)();
scanf("%lf%lf",&x,&y);
p=avg;
printf("%f\n",(*p)(x,y));
}
double avg(double a,double b)
{ return((a+b)/2);}

(13)以下程序運行後的輸出結果是 【13】。
#include
main()
{ int i,n[5]={0};
for(i=1;i<=4;i++)
{ n[i]==n[i-1]*2+1; printf("%d",n[i]); }
printf("\n");
}

(14)以下程序運行後的輸出結果是 【14】。
#include
#include
#include
main()
{ char *p; int i;
p=(char *)malloc(sizeof(char)*20);
strcpy(p,"welcome");
for(i=6;i>=0;i--) putchar(*(p+i));
printf("\n-"); free(p);
}

(15)以下程序運行後的輸出結果是 【15】。
#include
main()
{ FILE *fp; int x[6]={1,2,3,4,5,6},i;
fp=fopen("test.dat","wb");
fwrite(x,sizeof(int),3,fp);
rewind(fp);
fread(x,sizeof(int),3,fp);
for(i=0;i<6;i++) printf("%d",x[i]);
printf("\n");
fclose(fp);
}

2011年3月全國計算機等級考試二級筆試試卷
C語言程序設計答案

一.選擇題1-5 ABDDB
6-10 ACDCB 11-15 ADBAA
16-20 ADCAD 21-25 BDBCD
26-30 CDCCC 31-35 BBBDB
36-40 CDDCB
二,填空題
1) 順序 2) DEBFCA 3) 單元測試 4) 主鍵 5) D 6) 3 7) 1217
8) 09 9) 4 10) 20 0 11) i-1 12) double avg(doublea,double b) 13) 13715
14) e(E)moclew 15) 123456
2010年9月全國計算機等級考試二級C筆試試卷答案
一、選擇題
1~5: BCDAA 6~10:DDCCA 11~15:CBBAD 16~20: DAACB
21~25: BCBDC 26~30 :CBDDA 31~35:ACBCD 36~40 :BACBD

二、填空
1.1DCBA2345 2.n-1 3.25 4.結構化 5.物理設計 6.2008
7.15 8.非0 9. 1 4 13 40 10.i 11.2
12.a[row][col] 13.3 14.*s 15.FILE

B. C語言程序設計作業題-

《C語言程序設計》作業與思考題解答

說明:習題中P119:2.7 表示《C/C++上機實踐及習題選解》中第119頁的2.7題,其它以此類推,書後有解答。非《C/C++上機實踐及習題選解》中的習題提供習題參考答案。

習題解答

作業一

1.合法的標識符: a12 A21 sum2 _fun C_program

不合法的標識符:f(x) $a21 21a while [email protected]

2.

main( )

{ int i, j, s;

i=2; j=3;

s=i*j;

printf(「 %d %d=%d」,i,j,s)

}

作業二

1.指出下列哪些為C語言正確的整型(int)常量、實型(float)常量、字元型(char)常量?

正確的整型(int)常量:0 -325 128 03456

正確的實型(float)常量: 0.0 2. 1.2e-3 5e2

正確的字元型(char)常量: 『b』 『104』 『108』 『 』 『8』

2.表達式的結果 (1) 1

(2) 0

(4) 0

(5) 9.5

(9) 『A』

(11) 2

(12) 4.5

3. Y=sin(2*x)+(a+b)/(a*b)/(1+a/b)+*a*a/2

4.設m為整數,用邏輯表達式表示:能同時被3與7整除或者被5除餘2且小於100的整數。

m%3= =0 && m%7= =0 || m%5= =2 && m<100

作業三

1.華氏溫度通過公式C=5/9(f-32)轉換成攝氏溫度。試編程並上機調試運行:從鍵盤上輸入華氏溫度,利用公式計算後輸出攝氏溫度(要求:保留一位小數;記錄調試過程中遇到的問題及解決方法)。

#include

main( )

{ float f,c;

scanf(「%f」,&f);

c=5.0/9*(f-32);

printf(「c=%.1f」,c);

}

2.

用IF語句:

#include

#include

main( )

{ float x,y;

scanf(「%f」,&x);

if (x<0) y=fabs(x);

else if (x<10) y=x;

else if (x<20) y=3-x/5;

else if (x<40) y=3*x-10;

else y=0;

printf(「y=%f』,y);

}

用switch 語句:

#include

#include

main( )

{ float x,y;

scanf(「%f」,&x);

if (x<0) y=fabs(x);

else switch ( int(x/10) )

{ case 0: y=x; break;

case 1: y=3-x/5;break;

case 2,3: y=3*x-10; break;

defaut y=0;

}

printf(「y=%f』,y);

}

3. 解答見P151;

4.程序如下:

#include

#include

main()

{

int i=0;

char ch;

ch=getchar();

while (ch!=' ')

{ if (ch=='(') i++;

if (ch==')') i--;

if (i<0) break;

ch=getchar();

}

if (i==0) printf("(與)匹配") ;

else if (i<0) printf(" 缺) ") ;

else printf("缺少)");

}

5. 程序如下:

#include

main()

{

int i,j,k,m=0;

for (i=1;i<10;i++)

for (j=1;j<20;j++)

{ k=100-i*10-j*5;

if (k>0) { printf(" i=%-3dj=%-3dk=%-3d",i,j,k);

m++;

if (m%4==0) putchar(' ');

}

}

printf(" m=%d ",m);

}

6. 在橫線上填寫合適語句,完善程序,使之完成如下功能:從鍵盤上輸入一個不多於7位的正整數,統計其中2的個數,並求各位數字中的最小數。

#include

main( )

{int count,min,temp;

long n;

min=9; count=0;

scanf( 「%ld」 ,&n);

do

{ temp= n % 10 ;

if (temp= =2) count++;

if (min>temp) min=temp;

n=n/10;

}while ( n );

printf(「count=%d,min=%d」,count,min)

}

作業四

1.p128: 4.6 解答見p156

2. p128: 4.11 解答見p158

3.編寫一遞歸函數計算mn ,並從鍵盤輸入m,n的值(如4,3),求mn 的值(上機調試)。

funm_n(int m,int n)

{

int y;

if (n==1) y=m;

else y=m*funm_n(m,--n);

return y;

}

main()

{int m,n,y;

printf("Input integer(m,n):");

scanf("%d,%d",&m,&n);

y=funm_n(m,n);

printf(" %d^%-d=%-d",m,n,y);

}

4.P128: 4.12 (3); 答案:12345678

5.求3-100中的素數,要求編寫一函數來判斷某數是否為素數。

main()

{

int prime,i,n=0;

for (i=3;i<=100;i++)

{ prime=prime_num(i);

if (prime) { if (n%10==0) printf(" ");printf("%4d",prime);n++;}

}

}

prime_num(int m)

{ int k=2,r;

do {

r=m % k;

if (r==0) break;

k++;

}while(k<m); p=""> </m);>

if (r!=0) return m;

else return 0;

}

6. 結果如下:

main0:x=12,y=2

fun: x=6,y=25

main:x=12,y=2

fun:x=7,y=26

main:x=12,y=2

作業五

1.從鍵盤上輸入一串英文字元(不含空格與其他字元),統計每個字元的數目,並輸出字母及相應的數目。

#include

#include

main()

{

int i=0,c[52]={0},m=0;

char str[80];

printf("Input a string:");

scanf("%s",str);

while (str[i])

{ if (str[i]>='A' && str[i] <='Z') c[str[i]-'A']++;

if (str[i]>='a' && str[i] <='z') c[str[i]-'a'+26]++;

i++;

}

for (i=0;i<26;i++)

if (c[i]){ if (m%8==0) putchar(' ');m++;

printf("%c:%-d ",i+'A',c[i]);

}

for (i=0;i<26;i++)

if (c[i+26]){if (m%8==0) putchar(' ');m++;

printf("%c:%-d ",i+'a',c[i+26]);

}

}

2. P132: 5.15 程序見p167

3.從鍵盤上輸入8個數,用選擇法按由大到小的順序排列並輸出,要求用指針實現。

#include

#include

main()

{

int data[8],i,*p1,*p2,temp;

p1=data;

printf("Input 8 numbers:");

for (i=0;i<8;i++)

{ scanf("%d",p1);/* 或 &(*p1) */ ;

p1++;

}

for (p1=data;p1<data+8-1;p1++) p=""> </data+8-1;p1++)>

for (p2=p1+1;p2<data+8;p2++) p=""> </data+8;p2++)>

if (*p1<*p2){ temp=*p1; *p1=*p2; *p2=temp;}

for (i=0,p1=data;i<8;i++,p1++)

printf("%6d",*p1 ) ;

}

4.從鍵盤上輸入一個4 4整數矩陣,以主對角線()為對稱軸,將左下角元素中較大元素代替右上角對應元素,並將右上角元素(含對角線元素)輸出。

#include

#include

main()

{

int d[4][4],i,j,temp;

printf("Input 16 numbers:");

for (i=0;i<4;i++)

for (j=0;j<4;j++)

scanf("%d",&d[i][j]) ;

for (i=0;i<4;i++)

for (j=0;j<i;j++) p=""> </i;j++)>

if (d[i][j]>d[j][i]) d[j][i]=d[i][j];

for (i=0;i<4;i++)

{ printf(" ");

for (j=0;j<4;j++)

if (j>=i) printf("%6d",d[i][j] ) ;

else printf("%6c",' ') ;

}

}

5.盤上輸入兩個字元串a,b,下面程序將a,b的對應字元中的較大者存放在數組c的對應位置上,填空完善之。

#include

#include

main( )

{int k=0;

char a[80],b[80],c[80]={『』},*p,*q;

p=a; q=b;

gets(a); gets(b);

while (*p!=0 || * q!=0 )

{ if ( *p!=0 ) c[k]=*p;

else c[k]=*q;

p++; q++; k++;

if ( *p !=0 ) strcat(c,p);

else strcat(c,q);

puts(c);

}

作業六

1.P134:6.5 程序見p178

2.P135:6.7 程序見p181

3.P134:6.18 程序見p196

C. C語言程序設計(201803)測試求大佬幫忙!

  1. 選D

  2. 選C;"my name"算上空格一共7個字元,加上結尾的''為8個字元,所以如果m前沒有空格,那麼答案為C

  3. 選C;p指向a[3]=4的地址,即p及其之後地址中的數值為{4,5,6,7,8,9,10},所以其中第5個數為p[4]=8

  4. 選C

  5. 選D;A錯誤,字元串應為char型;B錯誤,數組長度不夠;C錯誤,沒有vhst類型;D正確,可看作字元數組,{}內的數值可轉為相應的ASCII字元

  6. 選C;字元數組即字元串不能直接通過"="賦值,要使用strcpy函數

  7. 選C;函數實參可以是常量、變數或表達式,該題中逗號表達式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3個實參

  8. 選C;A錯誤,函數調用時不用指明其參數類型;B錯誤,fun函數沒有返回值,不能賦給k;C正確;D錯誤,函數調用時不用指明其返回類型

  9. 選A;n++表示先返回n的值,再對n進行自增操作,即先令k=n,再執行n=n+1

  10. 選C;if-else不是循環結構

  11. 選D;aa表示數組首地址,即&aa[0],而不是&aa[1]

  12. 選B

  13. 選B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

  14. 選C;A錯誤,除非函數定義在調用語句之後的位置,才需要提前聲明;B錯誤,函數返回值不一定要顯示給出,沒有返回值類型的默認為整型;C正確;D錯誤,在類的定義中,當構造函數和析構函數不需要完成操作時可用空函數來表示,但它們又是有意義的

  15. 選B;scanf需指明讀入變數的地址,字元串名稱c就表示字元串的地址,也即字元數組首元素的地址,不用再加取地址符&

  16. 選A

  17. 選D;同第6題

碼字不易,望採納~

D. 在C語言中,在執行 char str[10]=」ch\nina」 ; strlen(str) 的結果是( )。 A、5 B、6 C、7 D、9

Neusoft

《C語言程序設計》習題集
《C程序設計》習題集
第一章C語言基礎知識

1.1 填空題
1.要把高級語言編寫的源程序轉換為目標程序,需要使用
A) 編輯程序 B) 驅動程序 C) 診斷程序 D) 編譯程序
2. 若有說明語句:int a,b,c,*d=&c;,則能正確從鍵盤讀入三個整數分別賦給變數a、b、c的語句是
A) scanf("%d%d%d",&a,&b,d); B) scanf("%d%d%d",&a,&b,&d);
C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);
3.以下選項中合法的用戶標識符是______。
A) long B) _2Test C) 3Dmax D) A.dat
4.設a和b均為譽睜double型常量,且a=5.5、b=2.5,則表達式(int)a+b/b的值是______。
A) 6.500000 B) 6 C) 5.500000 D) 6.000000
5.已知i、j、k為int型變數,若從鍵盤輸入:1,2,3<回車>,使i的值為1、j的值為2、k的值為3,以下選項中正確的輸入語句是______。
A) scanf("%2d%2d%2d"慶禪歲,&i,&j,&k);
B) scanf(""%d %d %d",&i,&j,&k);
C) scanf("%d,%d,%d",&i,&j,&k);
D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);
6.C語言程序的執行,總是起始於()。
A) 程序中的第一條可執行語句
B) 程序中的第一個函數
C) main函數
D) 包含文件中的第一個函數

7.下列說法中正確的是()
A) C程序書寫時,不區分大小寫字母
B) C程序書寫時,一行只能寫一個語句
C) C程序書寫時,一個語句可分成幾行書寫
D) C程序書寫時每行必須有行號

8.若有說明語句:int a; float b;,以下輸入語句正確的是()
A) scanf("%f%f",&a,&b);
B) scanf("%f%d",&a,&b);
C) scanf("%d,%f",&a,&b);
D) scanf("%6.2f%6.2f",&a,&b);
9.以下程序的輸出結果是()
main( )
{ int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
A) 11,11 B) 10,10 C) 10,11 D) 11,10

10.執行下面程序段,給x、y賦值時,不能作為數據分隔符的是()
int x,y;
scanf("%d%d",&x,&y);
A) 空格 B) Tab鍵 C) 回車 D) 逗號

11.執行下面程序時,欲將25和2.5分別賦給a和b,正確的輸入方法是。
int a;
float b;
scanf("a=%d,b=%f",&a,&b);
A) 25□2.5
B) 25,2.5
C) a=25,b=5.5
D) a=25□b=2.5

12.英文小寫字母d的ASCII碼為100,英文大寫字母D的ASCII碼為
A) 50 B) 66 C) 52 D) 68
13.以下定義語句中錯誤的是( )。
A)int a=3,b=5; B)float x1; x2;
C)char c1,c2,c3; D)double y3, y4;
14.若將整數4和5賦給整型變數a和b,對於語句scanf("%d%d" , &a,&b);在從鍵盤襲春輸入數據時,正確的數據輸入格式為( )。
A)4,5 B)4 5 C)4:5 D)4#5
15.若整型變數a和b的值分別為6和8,則下列語句printf("a=%d,b=%d",a,b); 的輸出結果為( )。
A)6, 8 B)6 8 C)a=6 b=8 D)a=6, b=8
16.C語言中的字元常量是以( )括起來的一個字元。
A)雙引號 B)單引號 C)\……\ D)*……*
17.C語言中的轉義字元\n的作用是( )。
A)回車換行 B)橫向跳格
C)縱向跳至本列下行 D)將游標移至本行行首
18.若有定義:int a=8,b=5,c;,執行語句c=a/b+0.4;後,c的值為
A) 1.4 B) 1 C) 2.0 D) 2
19.如果要把常量327存入變數a中,a可以定義成哪些類型?(多選)
A. int B. char
C. long D. float
20.下面哪個表達式的值為4.(單選)
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)
#include<stdio.h>
#include<math.h>
main( )
{int a=1,b=4,c=2;
float x=5.5,y=9.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
A).9.800000 B).9.300000 C).8.500000 D).8.000000

21.main( )
{int x = 10, y = 3;
printf("%d\n",y=x/y);
}
A).0 B).1 C).3 D).不確定的值

22.main( )
{int a;
printf("%d\n";(a=3*5,a*4,a+5));
}
A).65 B).20 C).15 D).10

23.已知小寫字母a的ASCII碼為97,大寫字母A的ASCII碼為65。以下程序
main()
{ unsigned int a=32, b=66;
printf("%c\n", a+b);
}
的結果為:
A).66 B).98 C).b D).B

24.設有如下定義
int x=10,y=3,z;
則語句
printf("%d\n",z=(x%y,x/y));
的輸出結果是
A).1 B).0 C).4 D).3

25.#define SQR(X) X*X
main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
A).10 B).1 C).9 D).0

26.#define MAX(x, y) (x)>(y)?(x):(y)
main()
{ int a=1, b=2, c=3, d=2, t;
t=MAX(a+b, c+d)*100;
printf("%d\n",t);
}
的運行結果為:
A).500 B).5 C).3 D).300

27.以下程序的輸出結果是
main()
{
int x=10,y=10;
printf("%d %d\n",x--,--y);
}
A).10 10 B).9 9 C).0 10 D).10 9

28.語句:printf("%d",(a=2)&&(b= -2));的輸出結果是
A).無輸出 B).結果不確定 C).-1 D).1
33、當c的值不為0時, 能正確將c的值賦給變數a、b
A).c=b=a;
B).(a=c)||(b=c)
C).(a=c)&&(b=c)
D).a=c=b

29.能正確表示a和b同時為正或同時為負的邏輯表達式是
A).(a>=0||b>=0)&&(a<0||b<0) B).(a>=0&&b>=0)&&(a<0&&b<0)
C).(a+b>0)&&(a+b<=0) D).a*b>0

30.下面合法的賦值語句是
A) x+y=2002; B) ch="green"; C) x=(a+b)++; D) x=y=0316;

31.下面哪個表達式的值為4.(單選)
A. 11/3 B. 11.0/3
C. (float)11/3 D. (int)(11.0/3+0.5)

32.已知a為整型變數,那麼與表達式 a!=0 真假值情況相同的表達式有哪些?(多選)
A. a>0||a<0 B. a
C. !a= =0 D. !a

33.以下非法的賦值語句是
A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;
34.若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=i*=k); printf("%d,%d\n",m,i);
}
執行後的輸出結果是______。
A) 8,6 B) 8,3 C) 6,4 D) 7,4

35.已有定義:int x=3,y=4,z=5;,則表達式!(x+y)+z-1&&y+z/2的值是______。
A) 6 B) 0 C) 2 D) 1

36.以下程序的輸出結果是
main()
{
int a=3;
printf("%d\n",(a+=a-=a*a) );
}
A) -6 B)12 C) 0 D) –12

37.設a、b、c、d、m、n均為int型變數,且a=5、b=6、c=7、d=8、m=2、n=2,則邏輯表達式(m=a>b)&&(n=c>d)運算後,n的值為
A) 0 B) 1 C)2 D) 3

38.假定w、x、y、z、m均為int型變數,有如下程序段:
w=1; x=2; y=3; z=4;
m=(w<x)?w: x;
m=(m<y)?m:y;
m=(m<z)?m: z;
則該程序運行後,m的值是
A) 4 B) 3 C) 2 D) 1

1.2 填空題
1.下面程序段的輸出結果是。
int k=10;
float a=3.5,b=6.7,c;
c=a+k%3*(int)(a+b)%2/4;

2.表達式5%(-3)的值是,表達式-5%(-3)的值是。

3.已知:int a=5;則執行a+=a-=a*a;語句後,a的值為。

4.下面程序的運行結果是x=,y=。
main( )
{ float x=4.9;int y;
y=(int)x;
printf ("x=%f , y=%d", x ,y); }

5.若有定義:int a=8,b=5,c;,執行語句c=a/b+0.4;後,c的值為。

6.以下程序的輸出結果是。
main()
{ int a=5,b=4,c=6,d;
printf("%d\n",d=a>b?(a>c?a:c):(b));
}

7.以下程序的輸出結果是。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}

8.當a=3,b=4,c=5時,寫出下列各式的值。
a<b的值為___, a<=b的值為___,
a==c的值為___, a!=c的值為___,
a&&b的值為___, !a&&b的值為___,
a||c的值為___, !a||c的值為___,
a+b>c&&b==c的值為___。

9.整型變數a的值是5,表達式a/=a+a;的值。

10.已知a=3,b=4,c=5,邏輯表達式a||b+c&&b-c的值

11.已知a=3,b=4,c=5,邏輯表達式!(a>b)&&!c||1的值

1.3 程序設計題
1.編寫程序:在屏幕上顯示一句話「hello neusoft!」。

2.編寫程序在屏幕上輸出如下圖型:
*
***
*****
*******
3.已知圓的半徑是5.6,求其直徑、周長、面積並輸出。
4.從鍵盤輸入圓的半徑,求其直徑、周長、面積並輸出。

5.編寫程序求任意圓的體積

6.求任意一元二次方程度兩個實根。

第二章 順序程序結構設計

2.1 填空題
1.計算機語言提供三種基本控制結構,即,,。人們提倡使用這三種結構編寫程序,並稱這樣的程序設計為。
2.2 程序設計題
1.從鍵盤輸入5個整數,求它們的和、平均值並輸出。

2.編寫程序,從鍵盤輸入兩個整數分別存放在變數c1,c2中,要求通過程序交換它們的值。

第三章 分支結構程序設計

3.1 填空題
1.能正確表示「當x的值在[1,10]和[200,210]范圍內為真,否則為假」的表達式是()。
A)(x>=1)&& (x<=10) && (x>=200) || (x<=210)
B)(x>=1)|| (x<=10) || (x>=200) || (x<=210)
C)(x>=1)&& (x<=10) || (x>=200) && (x<=210)
D)(x>=1)|| (x<=10) && (x>=200) || (x<=210)
2.判斷char型變數ch是否為大寫字母的正確表達式是()。
A)』A』<=ch<=』Z』 B) (ch>=』A』) & (ch<=』Z』)
C) (ch>=』A』) && (ch<=』Z』) D)(『A』<=ch) AND (『Z』>=ch)
3.請閱讀以下程序:
main()
{ int a=5, b=0, c=0;
if (a=b+c) printf(「***\n」);
else printf(「$$$\n」);
}
以上程序()。
A) 有語法錯誤不能通過編譯 B) 可以通過編譯但不能通過連接
C) 輸出*** D) 輸出$$$
4.當a=1,b=3,c=5,d=4時,執行完下面一段程序後x的值是()。
if (a<b)
if(c<d) x=1;
else
if (a<c)
if (b<d) x=2;
else x=3;
else x=6;
else x=7;
A) 1 B) 2 C) 3 D) 6
5.以下程序的輸出結果是()。
main()
{ int x=2, y=-1, z=2;
if (x<y)
if (y<0) z=0;
else z=z+1;
printf(「%d\n」, z);
}
A) 3 B) 2 C) 1 D) 0
6.若運行時給變數x輸入12,則以下程序的運行結果是()。
main()
{ int x, y;
scanf(「%d」, &x);
y=x>12?x+10:x-12;
printf(「%d\n」, y);
}
A) 0 B) 22 C) 12 D) 10

3.2 填空題
1.輸入一個字元,如果它是一個大寫字母,則把它變成小寫字母;如果它是一個小寫字母,則把它變成大寫字母;其它字元不變。請在橫線上填寫正確的內容。
main()
{ char ch;
scanf(「%c」, &ch);
if () ch=ch+32;
else if ( ch>=』a』 && ch<=』z』 ) ;
printf(「%c」, ch);
}
2.以下程序實現:輸入三個整數,按從大到小的順序進行輸出。請在橫線上填寫正確內容。
main()
{ int x, y, z, c;
scanf(「%d %d %d」, &x, &y, &z);
if ( )

if ( )

if ()

printf(「%d, %d,%d」, x, y, z);
}
3.以下程序的運行結果是。
main()
{ int a, b, c, d, x;
a=c=0; b=1; d=20;
if (a) d=d-10;
else if (!b)
if (!c) x=15;
else x=25;
printf(「%d\n」,d);
}
4.下面程序根據以下函數關系,對輸入的每個x值,計算出y值。請在橫線上填寫正確內容。
x y
2<x<=10 x(x+2)
-1<x<=2 2x
X<=-1 x-1
main()
{ int x, y;
scanf(「%d」, &x);
if () y=x*(x+2);
else if () y=2*x;
else if ( x<=-1 ) y=x-1;
else ;
if (y!=-1) printf(「%d」, y);
else printf(「error」);
}
5.設有程序片段:
switch (grade)
{ case 『A』 : printf(「 85-100\n」);
case 『B』 : printf(「 70-84\n」);
case 『C』 : printf(「 60-69\n」);
case 『D』 : printf(「<60\n」);
default : printf(「error!\n」);
}
若grade的值為』C』,則輸出結果是。
6.以下程序段的運行結果是。
int x=1, y=0;
switch (x)
{ case 1:
switch (y)
{ case 0 : printf(「**1**\n」); break;
case 1 : printf(「**2**\n」); break;
}
case 2: printf(「**3**\n」);
}

3.3 程序設計題
1.寫一程序,從鍵盤上輸入一年份year(為十進制數),判斷其是否為閏年。(閏年的條件是:能被4整除、但不能被100整除,或者能被400整除)

2.從鍵盤輸入x的值,求y的值並輸出。

3.從鍵盤輸入四個整數,輸出其中的最大者。

4.求任意二次方程的根。(包括虛根)

5.根據輸入的X值計算並輸出如下分段函數的值。

6.某百貨公司採用購物打折扣的方法來促銷商品,該公司根據輸入的購物金額,計算並輸出顧客實際付款金額,顧客一次性購物的折扣率是:
(1)少於500元不打折;
(2)500元以上且少於1000元者,按九五折優惠;
(3)1000元以上且少於2000元者,按九折優惠;
(4)2000元以上且少於3000元者,按八五折優惠;
(5)3000元以上者,按八折優惠。

7.根據輸入的三個邊長a,b,c,判斷它們能否構成三角形;若能構成三角形,繼續判斷該三角形是等邊、等腰還是一般三角形。

第四章 循環結構程序設計

4.1 選擇題
1.設有程序段
int k=10;
while (k=0) k= k—1;
則下面描述中正確的是()
A) while循環執行10次 B)循環是無限循環
C)循環體語句一次也不執行 D)循環體語句執行一次
2.下面程序的功能是計算:至50中是7的倍數的數值之和,請選擇填空。
#include <stdio.h>
main()
{int i,sum= 0;
for(i=1;i<=50;i++)
if( () ) sum+=i;
printf("%d",sum);
}
A) (int)(i/7)==i/7 B) (int)i/7==i/7
C) i%7= 0 D) i%7==0
3.下面程序段的運行結果是
a=1;b= 2;c=2;
while(a<b<c)
{
t= a;
a= b;
b=t;
c- -;
}
printf("%d,%d,%d",a,6,c);
A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1
4.下面程序的功能是計算 1至10之間的奇數之和及偶數之和。請選擇填空
#include <stdio.h>
main()
{int a,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{ a+=i;
() ;
c+=b;
}
printf("偶數之和=%d\n",a);
printf("奇數之和=%d\n",c-11),
}
A)b=i-- B) b=i+1 C)b=i++ D)b=i-1
5.下面程序段:
for (t=1; t<=100;t++)
{
scanf("%d",&x);
if(x<0) continue;
printf("%3d",t);
}
A) 當x<0時整個循環結束
B) x>=0時什麼也不輸出
C) printf函數永遠也不執行
D)最多允許輸出100個非負整數
6.下面程序的運行結果是:
#include "stdio.h"
main()
{int i;
for(i=1;i<=5;i++)
{if (i%2) printf("*");
else continue;
printf("#");
}
printf("#");}
A) *#*#$ B) #*#*#*$ C) *#*#$ D)#*#*$
7.設有程序段
int k=10;
while(k=5) k=k-1;
則下面描述正確的是
A)while循環執行10次 B)是死循環
C)循環語句一次也不執行 D)循環體語句執行一次
8.以下程序運行後的輸出結果是________。
main()
{int x=15;
while(x>10&&x<50)
{x++;
if(x/3)
else continue;
}
printf("%d\n",x);
}

4.2 程序設計題
1.求1~1000內所有能被3整除的整數,所有數右對齊,每行輸出10個數,每屏輸出20行。
2.從鍵盤上接受10個數,求和。要求:
(1)、先提示「請輸入第1個數:」 ,輸入第一個數後再提示「請輸入第2個數」,依次類推;
(2)、輸入完十個數後,輸出十個數求和的結果。

3.求n! ,n的值從鍵盤輸入.

4.從鍵盤上輸入一個正整數(VC下少於10位,winTC下小於32767),求其各數位之和.
5.從鍵盤輸入10個數,找出其中最大的數。分別用while和for語句實現。
6.輸出2~100(不含100)之間的全部同構數。所謂同構數是指:如果某數與其右起若干位的平方數相等,則稱該數為同構數。

7.編寫輸出以下圖形的程序(要求行數從鍵盤輸入)。

1
12
123
1234
12345
123456
……
8.計算200以內的所有素數的和。

5.1 選擇題
1.以下對一維數組a的正確說明是( )
(A)int a(10);
(B)int n=10,a[n];
(C)int n; scanf(「%d」,&n); int a[n];
(D)#define SIZE 10
int a[SIZE];
2.對以下說明語句的正確理解是( )
int a[10]=;
(A)將5個初值依次賦給a[1]至a[5]
(B)將5個初值依次賦給a[0]至a[4]
(C)將5個初值依次賦給a[6]至a[10]
(D)因為數組長度與初值的個數不相同,所以此語句不正確
3.下面程序的運行結果是( )
char c[5]=; printf(「%s」,c);
(A)ab (B)abc (C)abc+亂碼 (D)ab\0c\0
4.對兩個數組a和b進行如下初始化
char a[]=」ABCDEF」;
char b[]=;
則以下敘述正確的是 ( )
(A)a與b數組完全相同 (B)a與b長度相同
(C)a和b中都存放字元串 (D)a數組比b數組的長度長
5.下面是對s的初始化,其中不正確的是( )
(A)char s[5]=; (B)char s[5]=;
(C)char s[5]=」」; (D)char s[5]=」abcdef」;
6.以下程序運行的結果是( )
char s[6];
s=」abcd」;
printf(「%s\n」,s);
(A)」abcd」 (B)abcd (C)abcd+亂碼 (D)編譯出錯
7.若有說明語句char u[]=」Microsoft」,則數組的大小是( )
(A)100 (B)80 (C)10 (D)9
8.以下不正確的定義語句是 ( )
(A)double y[5]=;
(B)int y[5]=;
(C)char c[]=;
(D)char c[]=;
9.當執行下面的程序時,如果輸入ABC,則輸出結果是( )
A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789
#include "stdio.h"
#include "string.h"
main()
{ char ss[10]="1,2,3,4,5";
gets(ss); strcat(ss, "6789"); printf("%s\n",ss);
}
10.下列程序段的輸出結果是 。
main()
{ char b[]="Hello,you";
b[5]=0;
printf("%s \n", b );
}
11. 以下程序的輸出結果是( )
main()
{ int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A) 258 B) 741 C) 852 D) 369
12.在定義int a[10];之後,對a的引用正確的是( )。
A.a[10] B.a[6.3] C.a(6) D.a[10-10]

13.以下對一維數組a進行正確初始化的是( )。
A.int a[10]=(0,0,0,0,0); B.int a[10]={};
C.int a[]=; D.int a[10]=;

14.以下對字元數組word進行不正確初始化的是( )。
A.char word[]=』Trubo\0』;
B.char word[]=;
C.char word[]=;
D.char word[]=」Trubo\0」;
15.以下正確的定義語句是( )。
A.int A[『a』]; B.int A[3,4]; C.int A[][3]; D.int A[10];

16.以下給字元數組str定義和賦值正確的是( )。
A.char str[10]; str=;
B.char str[]=;
C.char str[10]; strcpy(str,「abcdefghijklmnop」);
D.char str[10]=;

17.在執行char str[10]=」China\0」; strlen(str)的結果是( )。
A.5 B.6 C.7 D.9

18.在執行char str[10]=」Ch\nina\0」; strlen(str)的結果是( )。
A.5 B.6 C.7 D.9

19.當接受用戶輸入的含空格的字元串時,應使用( )函數。
A.scanf() B.gets() C.getchar() D.getc()

20.當輸出含空格的字元串時,應使用( )函數。
A.printf() B.puts() C.putchar() D.putc()

5.2 填空題
1. 若有定義語句char c[10]=」hello」,s[]=」world」;,則字元數組c的長度為,字元數組c的長度為,字元串」hello」的長度是,字元串「world」的長度為_。
2. 字元串」hello,world!」的長度為,若有說明語句char s[]=」hello,world!」,則數組s的大小是。
3.以下程序執行時輸入Language Programming<回車>的結果是。
#include <stdio.h>
main( )
{
char str[30];
scanf(「%s」, str);
printf(「str=%s\n」, str);
}

4.以下程序執行時輸入Language Programming<回車>的結果是。
#include <stdio.h>
main( )
{
char str[30];
gets(str);
printf(「str=%s\n」, str);
}

5.以下程序的執行結果是。
#include <stdio.h>
main( )
{
int a[]=, i, j, s=0;
j=0;
for (i=3; i>=0; i--)
{
s=s+a[i]*j;
j=j*10;
}
printf(「s=%d\n」, s);
}

6.以下程序的執行結果是。
#include <stdio.h>
main( )
{
char str[]=;
int i;
for (i=0; str[i]!=』\0』; i++)
if (str[i]>=』0』 && str[i]<=』9』)
printf(「%c」, str[i]);
printf(「\n」);
}
5.3 程序設計題
1.從鍵盤輸入5個整數,保存到數組a中,先正序輸出再逆序輸出
2.從鍵盤輸入6個整數保存到數組中,求值最大的元素,將這個值最大的元素與數組的最後一個元素交換。最後輸出整個數組
3.從鍵盤輸入8個整數保存到數組中,運用選擇法按從大到小排序後輸出數組。
4.編程實現:從鍵盤輸入10個字元,存儲到字元型一維數組str中,再從鍵盤上輸入另一個字元ch,要求將str中出現的第一個ch字元刪除。將刪除ch後的數組str輸出到屏幕上。
5.編寫程序實現:將兩個字元串數組進行交換。
6.編程求兩個3×4 (3行4列)矩陣之和,然後輸出(矩陣元素的值從鍵盤輸入)
7.定義一個4行5列的二維整型數組,對其進行賦值,然後從該數組中選擇出一個最小數及該數的下標值(行和列的下標值都要記錄)。
另外,虛機團上產品團購,超級便宜

E. C語言程序設計題,請知道的幫忙解答下,謝謝

第2個看不懂

6 A B中指數必須用整數表示敏謹; C中do為關鍵字,不能用作變數;D中變數不能以數字開頭。

7 D 語句以分號橋鬧基結尾彎橋,D中有兩個分號。

其他的都正確

F. C語言程序設計2015A卷-

一、判斷題(每小題1分,共15分)

1.標准C中,只有數值型數據才能進行4則混合運算。

2.標准C中,_a是合法的自定義標識符。

3.有定義:float f;表達式f+=(int)3.6%2」不符合C語言語法。

4.標准C中,邏輯運算的結果只有是1表示滿足條件,而結果是0表示不滿足條件。

6.以下運算符排列順序滿足按照優先順序從高到低的排列:『&&』、『!』、『==』、『-』。

7.語句for(;;);是非法的。

8.在C語言程序中可以由多個源文件構成,每個源文件都可以有自己的main()函數。

9.while和do-while的主要區別是後者至少無條件執行一次。

10.數組名代表數組的首地址是常量,所以將實參數組名表示地址傳給形參數組名是錯誤的。

11.當函數沒有返回值類型時,表示函數類型為void。

12.C語言中,指針變數作函數參數時,它們不是採取單向值傳遞的方式。

13.一個函數中只允許有一條return語句。

14.在C語言中,如果沒有說明變數的存儲類型是auto類型的。

15.由於指針中所存放的地址都是整數,所以整型指針和浮點型指針可以相互賦值。

二、填空題(每空1分,共15分)

1. 若a=4;b=5,c=6;則表達式c==(b=-a); 中亂皮c的值是 (1) 。

2. 計算表達式的值:

4&&-4的值: (2) ;

設int a=3,b=4,c=5,則表達式a||b+c&&b==c的值: (3) ;

設x=2.5, a=7, y=4.7,則表達式x+a%3*(int)(x+y)%2/4的值: (4) ;

設a=12,則表達式a*=a/5的值: (5) ;

3. 若int x = 4,y = 6,z = 0;有循環while(x = y) {z ++;y--;}

則循環語句執行完後,z值為 (6) 。

4. 變數的指針就是指該變數的 (7) 。

5. 若有定義int (*p)[4],則標識符p是 (8) ;若有定義int *p[4],橋穗則標識符p是 (9) ;

6. 已有定義:char *p[ ]={「France」,「Chinese」,「Russia」,「America」};則語句printf(「%s」,p[2]);printf(「%c」,*(p[1]+2));printf(「%c」,*(*(p+1)+1));

的輸出結果分別為: (10) 、 (11) 、 (12) 。

7. 已有定義: int x=65; 若格式化輸出結果為「A, 65」,則對應的格式化輸出語句為printf(「 (13) , (14) 」, x, x)。

8. 已定義:int a[][2]={1, 2, 3, 4, 2, 6, 7, 2};則a[3][0]= (15) 。

三、簡答題(每題4分,共12分)

1、簡述選擇語句if和else語句對與switch語句的區別。

2、簡述在循環語句中,break和continue的區別。

3、若int a[5],*p=a;簡述*p++和(*p)++的區別。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4分,共16分)



五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)



七、編程題(8分)

編譯程序,其功能是比較字元串的大小( 不允許敏陪卜 用系統提供的字元串比較函數strcmp)。要求是:

(1) 通過主函數調用一個函數strcompare來實現。

(2) 要求函數strcompare實現兩個字元的比較:如第一個字元小於第二個字元則返回一個負值;如兩個字元相等則返回0值;如第一個字元大於第二個字元則返回一個正值。

(3) 並輸出兩個字元串中相同部分的子串。

《C語言程序設計基礎》試卷參考答案

一、判斷題(每小題1分,共15分)

1~5 ; 6~10 ; 11~15

二、填空題(每空1分,共15分)

(1) 6 (2) 1 (3) 1 (4) 2.5 (5) 24 (6) 6

(7)地址 (8) 行指針,指向有四個元素的一維數組

(9)指針數組名,該數組有四個元素,每個元素都是指針

(10)Russia (11)i (12)h (13) %c (14) %d (15)7

三、簡答題(每題4分,共12分)

1、if總是判斷其後面的表達式的值是否為非零值,如是非零值則執行其後面的語句或由{}括起來的復合語句,否則執行else後面的語句。而switch語句則根據其後面表達式的可數值來判斷,執行switch語句體內與其中的一個case:常量值相等語句後面的語句。執行break語句後,跳出switch語句體。

2、break是終止整個循環過程;continue是終止本次循環。

3、*p++首先取a[0]的值,然後p指向a[1];(*p)++使得a[0]的值自增1,但p保持不變。

四、下列各程序中每個程序各有2個錯誤,指出錯誤語句,寫出對應正確語句(每小題4 分,共16分)

1、 (1)缺#include ; (2)scanf(「%f」,a); 改為 scanf(「%f」,&a);

2、 (1)缺sum=0; (2)for(i=1; i<=3; i++) 改為for(i=0;i<3;i++)

3、 (1)p1=p2 改為 *p1=*p2 (2)swap(&a, *p) 改為swap(&a, p)

4、 (1)在if(m<0)語句後添加else if(m==0) a=1; (2) 添加 return(a);

五、程序填空題:下列程序中缺少若干條語句,在對應的下劃線上填上合適的語句,每一個下劃線只填一條語句(每小題6分,共24分)

1、 (1)x=0; (2)if(n==x) (3)s++;或s=s+1;

2、 (4)&num[i] (5)max< num[i]? (6)num[i]!=0

3、 (7)n-i-1 (8)a[j]>a[j+1] (9)a[j+1]=temp

4、 (10)count=0; (11)n%10 (12)n>0或n!=0或n

六、閱讀下列程序,寫出運行結果(第一小題4分,第二小題6分,共10分)

1、 #*#*#*

2、 main i=1 j=2 k=2

sub i=1 j=2 k=1 x=2

sub i=1 j=2 k=1 x=3

七、編程題(8分)

#include

main()

{

int i,j, flag=0;

char str1[90],str2[90];

gets(str1);

gets(str2);

i=0;

do{

flag=strcompare(str1[i],str2[i]);

i++;

}while(str1[i]!=』』 && str2[i]!=』』 &&flag=0);

if(flag<0)printf(「%s小於%s 」,str1,str2);

else if(flag==0) printf(「%s 等於%s 」,str1,str2);

else printf(「%s大於%s 」,str1,str2);

printf(「兩個字元串中相同的字串為:」);

j=0;

i--; 後3句可用str1[i]=』』; printf(「%s」,str1);代替//用str2也可以。

while(j<i){printf(「%c」,str1[i]);j++;} span=""> </i){printf(「%c」,str1[i]);j++;}>

}

int strcompare(char c1,char c2)

{

int v;

v=c1-c2;

return v;

}

G. C語言程序設計 char*p=『』abc\101\0fghijk\0『』; printf(『』%d

最終答案為4,第一個\0後截止,\0是字元串結束的標志,所以實際字元串只有abc\101\0,\101為轉義字元,根據ascii表,為字母A,而strlen函數是不統計\0的長度的,所以實際結果是abcA,所以結果為4,下附例圖

H. C語言程序設計。

1.a
2.c
3.b
4.d
5.c
6.c
7.a
8.c
9.a
10.a
11.b
12.c
13.b
答案源李李僅供參考雹遲擾飢

I. C語言程序設計

1.n=0 a=0
從右往左開始運算.
n%=(n%=2)--->n%=(7%=2)---> n%=1--->n = 0
a+=a-=a*=a 這個語句不同的編譯器的結果是不一樣的。在vc下因為好薯空執行了一次a -= a的操作,友瞎所以a=0

2.m=17
首先執行(--y==x++)的時候,x的值變為16了,y的值變成19。判斷 19==15 顯然是false,再執行++x後返回17。

3.輸出1,0
先執行手悔a+b和a-b,顯然28 != 2,所以為真,值為1
同理 13.14 <= 0.4 ,為假,值為0

4.
#define pi 3.1415926
float GetVolume(const float& r,const float& h)
{
return pi*r*r*h/3;
}

J. c語言程序設計

答案源搏選:C

雙引號引起來的字元串,系統會自動在後面填充一個'\0'符號,所以c1的長度為7,因為它包含的字元是:a b c d e '\0',而c2並沒有'\0'握局,c2的長雹皮祥度為6。

熱點內容
linux修改ftp用戶密碼 發布:2024-11-01 22:41:39 瀏覽:346
華為ftp在哪 發布:2024-11-01 22:36:33 瀏覽:288
java數組包含字元串 發布:2024-11-01 22:31:15 瀏覽:791
伺服器和家用電腦質量 發布:2024-11-01 22:28:29 瀏覽:488
sqlserver默認實例 發布:2024-11-01 22:23:42 瀏覽:959
sort排序java 發布:2024-11-01 22:23:26 瀏覽:47
解壓後的apk無法安裝 發布:2024-11-01 22:22:10 瀏覽:666
公司的pop伺服器地址 發布:2024-11-01 22:22:07 瀏覽:119
朵唯m30手機配置是真的嗎如何 發布:2024-11-01 22:16:56 瀏覽:681
夢幻西遊怎麼清理緩存 發布:2024-11-01 22:15:52 瀏覽:345