當前位置:首頁 » 招生排名 » 南昌大學c語言答案第四章

南昌大學c語言答案第四章

發布時間: 2023-03-22 01:10:30

『壹』 c語言程序設計第四版課後答案

#include"stdio.h"
main(void)
{
printf("圓裂慎源戚橘敬http://wenku..com/link?url=6zxTXwfJCk-_d86K-d6QSjY_
");
}

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

c語言考試題(一)

一、 單項選擇題(每題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.-12D.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];<br>short y[4];<br>char 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++<=25&&b--<=2&&c++) 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;i<4;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,則執行表達式:--x&&y++後,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;<br>x=1,y=2,z=3; x+=y+=z;<br>printf("1:%d\n",z+=x>y?x++:y++);<br>x=0x02ff;y=0xff00;<br>printf("2:%d\n",(x&y)>>4|0x005f);<br>x=y=z=-1; ++x||++y&&++z;<br>printf("3:%d,%d,%d\n",x,y,z);<br>}
2、#define f(x) x*x
main()
{int a=6,b=2,c;<br>c=f(a+b)/f(b);<br>printf(「%d\n」,c);<br>}
3、fun(int k)
{ printf("%d",k);
if(k>0)
fun(k-1);
}
main( )
{ int w=5; fun(w); printf("\n"); }
4、#include
main()
{int x=1,y=0;<br>switch(x)<br>{ case 1:<br>switch(y)<br>{ case 0:printf(「first\n」);break;<br>case 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;<br>void fc();<br>if((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;<br>while((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;i<3; ① )
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;i<7;i+=2)
for(j=i+2;j<8; ① )
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(inta,float *p)
{……………}
則此函數的兩個參數類型分別是_______________ 、 _____________________。

8. 設int x,y,z=4;
x=y=++z;
x=(y>z)?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.(x>y)&(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;i<9;i++)
if(score>iMax)
{
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;i<10;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=panan( n);
if(s==1)printf(「yes\n」);
else printf(「no\n);
}
int panan(int n)
{
int k,j;
k=(int)sqrt((double)n);
for(j=2;j<=k,j++)
{
if(n%j==0) break;
}
if(j>k) 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; i<9;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; i<9; i++)
{
iMin=0; 改正為_______________________。
for (j=i+1; j<10;j++)
if(a[iMin]< iMin="j;">改正為_______________________。

if (iMin==i) 改正為_________________________。
{ iTemp=a;
a[iMin]=a; 改正為_________________________。
a[iMin]=iTemp;
}
}
for(i=0; i<10; i++)
printf(「%4d」, a):
}

4. 源程序為求平均值。
#include
void main(void)
{
int i, sum; 改正為____________________。
float avg;
int sc[10], *p=sc;
for (i=0, i<10; 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(t<1e-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; i<36; 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; i<3; i++)
for(j=0; j<3; 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語言真題及答案
http://jsj.lsxy.com/UploadFiles/20064222324839.rar

『叄』 C語言:若文本文件中存儲的數據是123

這個吵升問題升銷老選答案B,feof是指向斗清3後面的那個返回非0的。

『肆』 有誰有南昌大學歷年來C++期末考試卷 謝謝啊

南昌大學 2008~2009學年第二學期期末考試試卷

試卷編號: ( A )卷
課程編號: T61050004 課程名稱: C++程序設計 考試形式: 閉卷
適用班級: 物理08級 姓名: 學號: 班級:
學院: 專業: 考試日期: 2009-6-27
題號 一 二 三 四 五 六 七 八 九 十 總分 累分人 簽名
題分 30 20 10 20 20 100
得分

考生注意事項:1、本試卷共7 頁,請查看試卷中是否有缺頁或破損。如有立即舉手報告以便更換。
2、考試結束後,考生不得將試卷、答題紙和草稿紙帶出考場。
一、 選擇題(每小題2分,共30分)
得分 評閱人

1、下列屬於C++語句的是 。
A) ; B) a=17 C) a+5 D) cout<<』\n』
2、執行語句k=30;j=k++;後k和j的值分別為 。
A) k=30,j=30 B) k=30,j=31
C) k=31,j=30 D) k=31,j=31
3、若X是一個bool型變數,則X && 5<3的值 。
A) 為true B) 為false
C) 與X的值相同 D) 與X的值相反
4、如果a=1,b=2,c=3,d=4,則條件表達式「a>b?a:c<d?c:d 」 的值為 。
A) 3 B) 2 C) 1 D) 4
5、執行下列語句後的輸出結果是 。
int hot=100;
int &rad=hot;
hot+=100;
cout<<rad<<endl;
A) 0 B) 100
C) 200 D) 300

6、下列關於break語句的敘述不正確的是 。
A) break語句可用於循環體中,它將使執行流程跳出本層循環體;
B) break語句可用於switch語句中,它將使執行流程跳出當前的switch語句;
C) break語句可用於if語句中,它將使執行流程跳出當前if語句;
D) break語句在一層循環體中可以出現多次。
7、下面關於類的對象性質的描述,正確的是 。
A) 對象之間不可以相互賦值 B) 不可以說明指向對象的指針
C) 對象不能用作數組元素 D) 一個對象能用作另一個對象的成員
8、在 C++ 中實現封裝是藉助於 。
A) 枚舉 B) 類
C) 數組 D) 函數
9、下列不是描述類的成員函數的是 。
A) 構造函數 B) 析構函數
C) 友元函數 D) 拷貝構造函數
10、不能作為函數重載判斷依據的是 。
A) 參數個數 B) 參數類型
C) 函數名稱 D)返回值類型
11、假定一個類的構造函數為 A(int aa,int bb){a=aa++;b=a*bb++;} ,則執行
A X(4,5); 語句後, X.a 和 X.b 的值分別為 。
A) 4 和 5 B) 5 和 30
C) 4 和 20 D) 20 和 5
12、對於double (*p)[10];的描述, 是正確的。
A) p是一個指向數組的指針,所指向的數組是10個double型元素;
B) p是一個指向某個數組中第10個元素的指針,該元素是double型變數;
C) p[5]表示某個數組的第10個元素的值;
D) p是一個具有10個元素的指針數組,每個元素是一個double型指針;
13、下面的函數聲明中, 哪一個是」 void BC(int a, int b);」的重載函數?
A) int BC(int a, int b) B) void BC(int a, char b)
C) float BC(int a, int b, int c = 0) D) void BC(int a, int b=0)
14、已知 char c; char * const pc="asdf", 是正確的。
A) pc="dfgh" B) *pc=『b』
C) *pc++=『y』 D) pc=&c
15、下列關於構造函數的敘述,錯誤的是 。
A) 構造函數可以設置默認參數;
B) 構造函數在說明類變數時自動調用;
C) 構造函數可以對靜態數據成員進行初始化;
D) 構造函數可以重載;

二、 填空題(每空1分,共20分)
得分 評閱人

1、C++程序主要有三種基本控制結構,分別是順序結構、 【1】 和 【2】 。
2、C++中,對類中的成員函數和屬性的訪問是通過_ 【3】 __、_ 【4】____和_ 【5】 __這3 個關鍵字來控制的。
3、在定義類的對象時,C++程序將自動調用該對象的_ 【6】 _函數初始化對象自身;在撤銷類的對象時,C++程序將自動調用該對象的__ 【7】 __函數。
4、外部函數應聲明為類的 【8】 才能訪問這個類的private成員。
5、描述命題"A大於B且小於C"的表達式為 【9】 。
6、 面向對象的程序設計有四大特徵,它們是 【10】 、 【11】 、 【12】 、 【13】 。
7、 設"int a=3,b=4,c=5;",表達式"(a+b)>c&&b==c"的值是 【14】 。
8、若用語句來申請空間:int *p=new int[10];要釋放該空間應使用語句: 【15】 。
9、已知變數x的值是3,則表達式x+=3,x++,x+2的值是 【16】 。
10、以下程序實現從鍵盤輸入兩個整數a和b,輸出其中大者的功能(不考慮相等的情況)
#include <iostream.h>
void main( )
{ 【17】 ;
cin>>a>>b;
if( 【18】 ) cout<<」最大值為:」<<a;
else cout<<」最大值為:」<<b;
}
11、下列f函數的功能是將形參x的值轉換成二進制數,所得二進制書的每一位放在一 維數組y中返回。二進制的最低位放在下標為0的元素中。請填空。
Void f(int x, int y[ ])
{
int a=0,b;
do
{
b=x% 【19】 ;
y[a++]=b;
x= 【20】 ;
} while(x)
}

三、 判斷題(每小題1分,共10分)
得分 評閱人

1、C++中,數組下標從1開始。( )
2、C++允許對字元串進行整體操作。( )
3、break語句也可以用於if體內,它可退出if語句。()
4、在說明語句 char a(『A』),&b=a,*pa=&a;中,b的值與*pa的值相等。( )
5、對象數組的元素可以是不同類的對象。( )
6、私有繼承中,基類中所有成員對派生類的對象都是不可見的。()
7、類中所提供的成員函數可以直接訪問私有成員。()
8、按照標識符的要求,下劃線是不能組成正確標識符的。( )
9、函數的默認參數沒有順序要求,可以隨意定義。( )
10、在 C++ 語言中,」A」占兩個位元組,而 』A』佔一個位元組。( )

四、 程序閱讀題 (每小題5分,共20分)
得分 評閱人

寫出下列程序的運行輸出結果:
1、#include <iostream.h>
void main()
{
int a,b,c,;
c=2,c+=10;
a = 10;
b=11;
a * = 2;
b / = 2;
c % = 2;
cout<<a<<","<<b<<","<<c<<endl;
}

2、#include <iostream.h>
void main()
{
int i;
for(i=4 ; i<=10 ; i++ )
{ if (i%3= =0) continue;
cout<<i; }
}
3、#include<iostream.h>
class Sample
{
int x;
public:
Sample(){};
Sample(int a){x=a;}
Sample(Sample &a){x=a.x+1;}
void disp(){cout<<"x="<<x<<endl;}
};
void main()
{ Sample s1(2),s2(s1);
s1.disp();
s2.disp();
}

4、#include <iostream>
using namespace std;
int GCD (int u, int v)
{
while (u % v) {
int t= u % v;
u = v;
v = t;
}
return v;
}
int GCM (int u, int v)
{
int gcd = GCD (u, v);
return u * v / gcd;
}
void main()
{int a=8,b=12;
cout<<」GCD=」<<GCD(a,b)<<endl;
cout<<」GCM=」<<GCM(a,b)<<endl;
}

五、 程序設計題 (每小題10分,共20分)
得分 評閱人

1、從鍵盤輸入10個正整數,輸出它們中的最大值、最小值和平均值。

2、定義並實現一個矩形類,有長、寬兩個屬性,用成員函數計算矩形的面積。

『伍』 c語言第四章的答案

//如果是老譚的,你看看下面是否是你要的。
第三章 3.4
main()
{int a,b,c;
long int u,n;
float x,y,z;
char c1,c2;
a=3;b=4;c=5;
x=1.2;y=2.4;z=-3.6;
u=51274;n=128765;
c1='a';c2='b';
printf("\n");
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6ld n=%9ld\n",u,n);
printf("c1='%c'or %d(ASCII)\n",c1,c1);
printf("c2='%c'or %d(ASCII)\n",c2,c2);
}
3.5
57
5 7
67.856400,-789.123962
67.856400,-789.123962
67.86 -789.12,67.856400,-789.123962,67.856400,-789.123962
6.785640e+001,-7.89e+002
A,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
COMPUTER, COM
3.6
a=3 b=7/
x=8.5 y=71.82/
c1=A c2=a/
3.7
10 20Aa1.5 -3.75 +1.4,67.8/
(空 3)10(空3)20Aa1.5(空1)-3.75(空1)(隨意輸入一個數),67.8 回車
3.8
main()
{float pi,h,r,l,s,sq,sv,sz;
pi=3.1415926;
printf("input r,h\n");
scanf("%f,%f",&r,&h);
l=2*pi*r;
s=r*r*pi; sq=4*pi*r*r;
sv=4.0/3.0*pi*r*r*r;
sz=pi*r*r*h;
printf("l=%6.2f\n",l);
printf("s=%6.2f\n",s);
printf("sq=%6.2f\n",sq);
printf("vq=%6.2f\n",sv);
printf("vz=%6.2f\n",sz);
}
3.9
main()
{float c,f;
scanf("%f",&f);
c=(5.0/9.0)*(f-32);
printf("c=%5.2f\n",c);
}
3.10
#include"stdio.h"
main()
{char c1,c2;
scanf("%c,%c",&c1,&c2);
putchar(c1);
putchar(c2);
printf("\n");
printf("%c%c\n",c1,c2);
}
第四章
4.3
(1)0 (2)1 (3)1 (4)0 (5)1
4.4
main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
if(a<b)
if(b<c)
printf("max=%d\n",c);
else
printf("max=%d\n",b);
else if(a<c)
printf("max=%d\n",c);
else
printf("max=%d\n",a);
}
main() {int a,b,c,temp,max;
scanf("%d,%d,%d",&a,&b,&c);
temp=(a>b)?a:b;
max=(c>temp)?c:temp;
printf("max=%d",max);
}

4.5
main()
{int x,y;
scanf("%d",&x);
if(x<1)y=x;
else if(x<10)y=2*x-1;
else y=3*x-11;
printf("y=%d",y);
}
4.6
main()
{int score,temp,logic;
char grade;
logic=1;
while(logic)
{scanf("%d",&score);
if(score>=0&&score<=100)logic=0;
}
if(score==100)
temp=9;
else
temp=(score-score%10)/10;
switch(temp)
{case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';
}
printf"score=%d,grade=%c",score,grade);
}
4.7 main()
{long int num;
int indiv,ten,hundred,thousand,ten_thousand,place;
scanf("%ld",&num);
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf("place=%d\n",place);
ten_thousand=num/10000;
thousand=(num-ten_thousand*10000)/1000;
hundred=(num-ten_thousand*10000-thousand*1000)/100;
ten=(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=num-ten_thousand*10000-thousand*1000-hundred*100-ten*10;
switch(place)
{case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);
break;
case 4:printf("%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
printf("%d,%d,%d,%d\n",indiv,ten,hundred,thousand);
break;
case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
printf("%d,%d,%d\n",indiv,ten,hundred);
break;
case 2:printf("%d,%d\n",ten,indiv);
printf("%d,%d\n",indiv,ten);
break;
case 1:printf("%d\n",indiv);
printf("%d\n",indiv);
}
}
4.8
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
if(i<=1e5)bonus=i*0.1;
else if(i<=2e5)bonus=bon1+(i-100000)*0.075; else if(i<=4e5)bonus=bon2+(i-200000)*0.05;
else if(i<=6e5)bonus=bon4+(i-400000)*0.03;
else if(i<=1e6)bonus=bon6+(i-600000)*0.015;
else bonus=bon10+(i-1000000)*0.01;
printf("bonus=%10.2f",bonus);
}
main()
{long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
scanf("%ld",&i);
branch=i/100000;
if(branch>10)branch=10;
switch(branch)
{case 0:bonus=i*0.1;break;
case 1:bonus=bon1+(i-100000)*0.075;break;
case 2:
case 3:bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5:bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7
case 8:
case 9:bonus=bon6+(i-600000)*0.015;break;
case 10:bonus=bon10+(i-1000000)*0.01;
}
printf("bonus=%10.2f",bonus);
}

4.9
main()
{int t,a,b,c,d;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b){t=a;a=b;b=t;}
if(a>c){t=a;a=c;c=t;}
if(a>d){t=a;a=d;d=t;}
if(b>c){t=b;b=c;c=t;}
if(b>d){t=b;b=d;d=t;}
if(c>d){t=c;c=d;d=t;} printf("%d %d %d %d\n",a,b,c,d);
}
4.10
main()
{int h=10;
float x,y,x0=2,y0=2,d1,d2,d3,d4;
scanf("%f,%f",&x,&y);
d1=(x-x0)*(x-x0)+(y-y0)*(y-y0);
d2=(x-x0)*(x-x0)+(y+y0)*(y+y0);
d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);
d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);
if(d1>1&&d2>1&&d3>1&&d4>1)h=0;
printf("h=%d",h);
}

『陸』 在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列的二維整型數組,對其進行賦值,然後從該數組中選擇出一個最小數及該數的下標值(行和列的下標值都要記錄)。
另外,虛機團上產品團購,超級便宜

『柒』 求《標准C語言基礎教程(第四版)》的課後「編程練習」答案

這本書是沒有答案的

『捌』 南昌大學c語言期末考試有題庫嗎

沒有題庫的, 不過每年都是類似的題目,考察的知識點都一樣.

『玖』 C語言試題答案

1、就近;花括弧
2、取模,x%10
3、不會~~,窘
4、沒用過TC,專不會~~,窘
5、死循屬環,while(1);
6、/**/,注釋
7、是10 和10l 吧~~前者int,2個位元組或者4個位元組,後者long ,4個位元組
8、不會~~,窘
9、printf("%ld",in);
10、步驟
11、循環變數的初值,循環條件和循環變數的增量,
12、關鍵字???
13、不會~~,窘
14、#define EMI 6688
15、一元
16、六
17、18、19懶的看了,LZ自己用printf(),看看結果
20、D
21、A
22、B
23、A
24、A
25、
26、C
27、
28、B、D,多選?
29、
30、B
31、D
32、 C
不一定正確~~問老師吧,窘

『拾』 求助四道c語言答案

(1) 49.
(2) 024.
(3)afternoon
evening
morning
night
(4)?題目是什麼意思??
你的程序好多地方有問題!
1.
#include <stdio.h>
main()
{int a[10]={19,23,44,17,37,28,49,36},*p;
p=a;
printf("%d\n",(p+=3)[3]);
}
2.
#include<stdio.h>悄並鎮
#define MAX 3
int a[MAX];
fun1()
{
int k,t=0;
for(k=0;k<MAX;k++,t++) a[k]=t+t;
}
fun2(int b[])
{
int k;
for(k=0;k<MAX;k++) printf("%d",*(b+k));
}
main()
{fun1();
fun2(a);
printf("\n");
}
3.
#include <啟粗stdio.h>
void func(char *a[],int n)
{ int i,j,l;char *temp;
for(i=0;i<蔽迅n-1;i++)
{ l=i;for(j=i+1;j<n;j++)
if(strcmp(a[j],a[l])<0) l=j;
if(l!=i)
{temp=a[i];
a[i]=a[l];
a[l]=temp;
}
}
}
void main()
{
char *name[4],ch[4][15]={"morning","afternoon","night","evening"};
int k;
for(k=0;k<4;k++) name[k]=ch[k];
func(name,4); for(k=0;k<4;k++)
printf("%s\n",name[k]);
}

熱點內容
四川農業大學申請考核博士 發布:2025-10-20 08:58:11 瀏覽:981
福田雷沃重工本科生待遇怎麼樣 發布:2025-10-20 08:53:49 瀏覽:575
華為要本科生嗎 發布:2025-10-20 08:25:41 瀏覽:550
2008年青島本科生工資 發布:2025-10-20 08:04:24 瀏覽:444
東北大學藝術考研 發布:2025-10-20 07:38:35 瀏覽:299
我的大學生活txt 發布:2025-10-20 07:35:28 瀏覽:25
人民大學外語系考研 發布:2025-10-20 07:31:12 瀏覽:894
上海交通大學考研輔導班 發布:2025-10-20 07:24:54 瀏覽:420
華中農業大學細胞生物學考研群 發布:2025-10-20 07:09:36 瀏覽:558
南京大學2016考研線 發布:2025-10-20 06:43:12 瀏覽:930