本文目錄一覽:
- 1、求《C語言程序設計基礎》的課後習題答案
- 2、習題答案 清華大學出版社出版!
- 3、求的答案
- 4、求《C語言程序設計》第四版,譚浩強編,清華大學出版社 課後習題答案
- 5、《C語言程序設計基礎》陳東方著清華大學出版社課後習題答案求詳解
- 6、c++程序設計基礎教程課後答案(清華大學出版社鄭莉 董淵著)
求《C語言程序設計基礎》的課後習題答案
大學學習資料免費下載網 有類似資料
在 其他公共課程 版塊
標題:陳東方 C語言程序設計基礎實驗與題解(答案)
中國物聯網校企聯盟技術部
習題答案 清華大學出版社出版!
我有,剛掃描好的,還沒發上去。
你重新開一個題,加點分。
我發給你。
不過有幾十M哦。
求的答案
(第一題)#include stdio.h
void main()
{
int gy(int m, int n);
int x,y,max, min;
printf(“請輸入兩個大於0的正整數,以空格或者回車間隔:\n”);
scanf(“%d%d”,x,y);
while(x1 || y1)
{
printf(“輸入數據不正確,請重新輸入。\n”);
printf(“請輸入兩個大於0的正整數,以空格或者回車間隔:\n”);
scanf(“%d%d”,x,y);
}
max=gy(x,y);
min=x*y/max;
printf(“%d與%d的最大公約數是:%d,最小公倍數是:%d\n”,x,y,max,min);
}
int gy(int m, int n)
{
int max, t;
while(m%n != 0) // while(m%n)
{
t=n; n=m%n; m=t;
}
max=n;
return max;
}
第二題#include stdio.h
#include math.h
void main()
{
void root(double a, double b, double c);
double a, b, c;
printf(“請輸入一元二次方程的係數,用空格或者回車間隔:\n”);
scanf(“%lf%lf%lf”,a,b,c);
root(a,b,c);
}
void root(double a, double b, double c)
{
double disc, x1, x2, real , imag;
disc = b*b-4*a*c;
if(disc0)
{
x1 = (-b+sqrt(disc))/(2*a);
x2 = (-b-sqrt(disc))/(2*a);
printf(“方程有兩個實根,分別是:%f 與 %f\n”, x1, x2);
}
else if(disc==0)
{
x1 = (-b)/(2*a);
printf(“方程有一個實根,它是:%f\n “, x1);
}
else
{
real=(-b)/(2*a);
imag=sqrt(-disc)/(2*a);
printf(“方程有兩個虛根,分別是:%f+%fi, %f-%fi\n”, real,imag,real,imag);
}
}
測試1:請輸入一元二次方程的係數,用空格或者回車間隔:1 2 1
方程有一個實根,它是:-1.000000
測試2:請輸入一元二次方程的係數,用空格或者回車間隔:1 6 5
方程有兩個實根,分別是:-1.000000 與 -5.000000
測試3:請輸入一元二次方程的係數,用空格或者回車間隔:1 1 1
方程有兩個虛根,分別是:-0.500000+0.866025i, -0.500000-0.866025i
第三題#include stdio.h
#include math.h
void main()
{
int isprime(int n);
int n;
scanf(“%d”,n);
while(n2)
{
printf(“Please reinput(n=2):”);
scanf(“%d”,n);
}
if(isprime(n))
printf(“%d是素數。\n”,n);
else
printf(“%d不是素數。\n”,n);
}
int isprime(int n)
{
int i,k=sqrt(n);
for(i=2;i=k;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
第四題#include stdio.h
#include math.h
void main()
{
void printA(int a[3][3]);
void reverse(int a[3][3]); //轉置函數的聲明
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
printf(“原二維數組:\n”);
printA(a);
reverse(a); //函數轉置
printf(“轉置後的數組:\n”);
printA(a);
}
void printA(int a[3][3])
{
int i,j;
for(i=0;i3;i++)
{
for(j=0;j3;j++)
{
printf(“%6d”,a[i][j]);
}
printf(“\n”);
}
}
void reverse(int a[3][3]) //函數轉置的定義
{
int i,j,t;
for(i=0;i3;i++)
{
for(j=0;ji;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
}
}
第五題#include stdio.h
#include string.h
void main()
{
char str[30];
void fanxu(char *p);
printf(“請輸入一個字元串:”);
gets(str);
printf(“進行反序……\n”);
fanxu(str);
printf(“反序後的字元串:”);
puts(str);
}
void fanxu(char *p)
{
int len=strlen(p);
char *q,c;
q=p+len-1; //字元串最後一個字元位置
for(;pq;p++,q–)
{
c=*p; *p=*q; *q=c;
}
}
第六題#include stdio.h
#include string.h
void main()
{
char str1[60],str2[30];
void str_copy(char *p, char *q);
printf(“請輸入第一個字元串:”);
gets(str1);
printf(“請輸入第二個字元串:”);
gets(str2);
str_copy(str1, str2);
printf(“連接後的字元串:”);
puts(str1);
}
void str_copy(char *p, char *q)
{
for(;*p!=’\0′;p++);
for(;*q!=’\0′;p++,q++)
{
*p=*q;
}
*p=’\0′;
}
(0808)#include stdio.h
#include string.h
void main()
{
char str[80];
void insert(char str[]); //插入空格的函數
printf(“請輸入一個字元串:”);
gets(str);
insert(str); //插入空格
puts(str); //輸出字元串
}
void insert(char str[])
{
int len, i;
len=strlen(str);
for(i=len; i0; i–) // 設置空格
{
str[2*i]=str[i];
str[2*i-1]=’ ‘;
}
}
(0809)#include stdio.h
int letter; //字母個數
int digit; //數字個數
int space; //空格個數
int others; //其它字母個數
void main()
{
void count(char str[]); //統計個數的函數的聲明
char s[81];
printf(“請輸入一個字元串:”);
gets(s);
letter=0; digit=0;
space=0; others=0;
count(s);
printf(“字元串中共有 %d 個字母,%d 個數字,%d 個空格,%d個其它字母。\n”,letter,digit,space,others);
}
void count(char str[]) //統計個數的函數的定義
{
int i;
char c;
for(i=0; str[i]!=’\0′;i++)
{
c=str[i];
if(c=’a’ c=’z’ || c=’A’ c=’Z’)
{ letter++; }
else if(c=’0′ c=’9′)
{ digit++; }
else if(c==’ ‘)
{ space++; }
else
{ others++; }
}
}
(0810)#include stdio.h
#include string.h
void main()
{
int i;
char line[81];
int alphabetic(char c); //判斷一個字元是空格還是其它字母
int longest(char str[]);//尋找最長單詞的起始位置
printf(“請輸入一行字元串:\n”);
gets(line);
printf(“最長的字元串是:”);
for(i=longest(line); alphabetic(line[i]); i++)
{ printf(“%c”,line[i]);}
printf(“\n”);
}
int alphabetic(char c) //如果為空格返回0,其它字母返回1
{
if(c!=’ ‘)
return 1;
else
return 0;
}
int longest(char str[])
{
int len=0; // 記錄每一個單詞的長度
int length=0; // 記錄最長單詞的長度
int flag=1; // 其值為0時表示當前位置處於字元串中,為1時表示當前位置為空格
int place=0; // 記錄最長字元串(單詞)的起始位置
int point; // 每個字元串的起始位置
for(int i=0; i=strlen(str); i++)
{
if(alphabetic(str[i])) //如果當前位置為非空格
{
if(flag) //如果前一字元為空格
{
point = i; // 設置當前單詞的起始位置
flag = 0; // flag設為0,表示處於單詞中
}
else //如果前一字元為非空格
{ len++; } // 單詞的長度加1
}
else //當前位置為空格
{
flag = 1; //flag設為1,表示當前位置為空格
if(len = length) //如果最近單詞的長度大於最長長度
{
length = len;
place = point; //設置最長單詞的起始位置
len = 0; //len歸0,重新開始計算單詞的長度
}
}
}
return place;
}
(0811)#include stdio.h
#include string.h
void main()
{
void inputNum(int a[], int n);
void outputNum(int a[], int n);
void bubble(int a[], int n);
int a[11], n;
printf(“請輸入你要排序的數的個數:”);
scanf(“%d”,n);
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
printf(“從小到大排序為:\n”);
outputNum(a,n);
}
void inputNum(int a[], int n)
{
int i;
for(i=1;i=n;i++)
{
printf(“a[%d]=”,i);
scanf(“%d”,a[i]);
}
}
void outputNum(int a[], int n)
{
int i;
for(i=1;i=n;i++)
{
printf(“%6d”,a[i]);
}
printf(“\n”);
}
void bubble(int a[], int n)
{
int i,j,t;
for(i=1;i=n-1;i++)
{
for(j=1; j=n-i; j++)
{
if(a[j]a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(0813)#include stdio.h
void main()
{
double lrd(int, double);
double x;
int n;
printf(“請輸入n階勒讓德多項式的階數:\n”);
scanf(“%d”,n);
printf(“請輸入x的值:\n”);
scanf(“%lf”,x);
printf(“參數為%f 的 %d 階勒讓德多項式的值為 %f.\n”,x,n,lrd(n,x));
}
double lrd(int n, double x)
{
if(n==0)
return 1;
else if(n==1)
return x;
else
return ((2*n-1)*x – lrd(n-1,x) -(n-1)*lrd(n-2,x))/n;
}
/*
測試1:請輸入n階勒讓德多項式的階數:0請輸入x的值:99.99參數為99.990000 的 0 階勒讓德多項式的值為 1.000000.
測試2:請輸入n階勒讓德多項式的階數:1請輸入x的值:99.99
參數為99.990000 的 1 階勒讓德多項式的值為 99.990000.
測試3:請輸入n階勒讓德多項式的階數:2
請輸入x的值:99.99 參數為99.990000 的 2 階勒讓德多項式的值為 99.490000.
測試4:請輸入n階勒讓德多項式的階數:10
請輸入x的值:1.1
參數為1.100000 的 10 階勒讓德多項式的值為 0.888677.
(0817)#include stdio.h
void main()
{
int num;
void convert(int num); // 轉換為字元串的函數的聲明
printf(“請輸入一個整數:\n”);
scanf(“%d”,num);
printf(“轉換成字元串:”);
if(num0)
{
putchar(‘-‘);
num = -num;
}
convert(num);
printf(“\n”);
}
void convert(int n)
{
int i;
if((i = (n/10)) != 0)
{
convert(i);
}
putchar(n%10 + ‘0’);
}
(0818)#include stdio.h
int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
int year,month,day;
int days;
int count(int year,int month, int day);
int leap(int y);
printf(“請輸入年份:”);
scanf(“%d”,year);
while(year=0)
{
printf(“年份不能為負,請重新輸入:”);
scanf(“%d”,year);;
}
if(leap(year)) //如果為閏年,2月份的天數為29
{ d[2]=29; }
printf(“輸入月份:”);
scanf(“%d”,month);
while(month1 || month12)
{
printf(“月份在1月和12月之間,你的輸入有誤,請重新輸入:”);
scanf(“%d”,month);
}
printf(“輸入日數:”);
scanf(“%d”,day);;
while(day1 || day d[month])
{
printf(“日數應在1和%d之間,請重新輸入:”,d[month]);
scanf(“%d”,day);
}
days=count(year,month,day);
printf(“%d年%d月%d日是該年的第%d天\n”,year,month,day,days);
}
int leap(int y)
{
if(y%4==0 y%100!=0 || y%400==0)
return 1;
else
return 0;
}
int count(int year,int month, int day)
{
int i,days=0;
for(i=1; imonth; i++)
{ days += d[i]; }
days+=day;
return days;
}
(08050)#include stdio.h
#include string.h
void main()
{
char str[30];
void fanxu(char str[]);
printf(“請輸入一個字元串:”);
gets(str);
printf(“進行反序……\n”);
fanxu(str);
printf(“反序後的字元串:”);
puts(str);
}
void fanxu(char str[])
{
int len=strlen(str);
int i,j;
char c;
i=0; j=len-1;//i,j分別存儲第一個字元和最後一個字元的下標
for(;ij; i++,j–)
{
c=str[i]; str[i]=str[j]; str[j]=c;
}
}
(08051)#include stdio.h
#include string.h
void main()
{
char str[30];
void fanxu(char s[]);
printf(“請輸入一個字元串:”);
gets(str);
printf(“進行反序……\n”);
fanxu(str);
printf(“反序後的字元串:”);
puts(str);
}
void fanxu(char s[])
{
int len=strlen(s);
int i;
char c;
for(i=0;i=len/2;i++)
{
c=s[i];
s[i]=s[len-i-1];
s[len-i-1]=c;
}
}
(08061)#include stdio.h
#include string.h
void main()
{
char str1[60],str2[30];
void str_copy(char s1[], char s2[]);
printf(“請輸入第一個字元串:”);
gets(str1);
printf(“請輸入第二個字元串:”);
gets(str2);
str_copy(str1, str2);
printf(“連接後的字元串:”);
puts(str1);
}
void str_copy(char s1[], char s2[])
{
int i,j;
for(i=0;s1[i];i++); // s1[i]!=’\0′
for(j=0;s1[i]=s2[j];i++,j++);
// (s1[i]=s2[j])!=’\0′
}
(08110)#include stdio.h
#include string.h
void main()
{
void inputNum(char a[], char n);
void outputNum(char a[], char n);
void bubble(char a[], char n);
char a[11], n;
printf(“請輸入你要排序的數的個數:”);
scanf(“%d”,n);
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
printf(“從小到大排序為:\n”);
outputNum(a,n);
}
void inputNum(char a[], char n)
{
char i;
printf(“請連續輸入%d個字元:”,n);
fflush(stdin); //一般在輸入字元或者字元串之前要清空輸入緩衝區
for(i=1;i=n;i++)
{
scanf(“%c”,a[i]);
}
}
void outputNum(char a[], char n)
{
char i;
for(i=1;i=n;i++)
{
printf(“%2c”,a[i]);
}
printf(“\n”);
}
void bubble(char a[], char n)
{
char i,j,t;
for(i=1;i=n-1;i++)
{
for(j=1; j=n-i; j++)
{
if(a[j]a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(08112)#include iostream.h
#include iomanip.h
void main()
{
void inputNum(int a[], int n);
void outputNum(int a[], int n);
void bubble(int a[], int n);
int a[11], n;
cout”請輸入你要排序的數的個數:”;
cinn;
while(n1 || n10)
{
cout”請重新輸入,(1=n=10):”;
cinn;
}
inputNum(a,n);
outputNum(a,n);
bubble(a,n);
cout”從小到大排序為:\n”;
outputNum(a,n);
}
void inputNum(int a[], int n)
{
int i;
for(i=1;i=n;i++)
{
cout”a[“i”]=”;
cina[i];
}
}
void outputNum(int a[], int n)
{
int i;
for(i=1;i=n;i++)
{
coutsetw(6)a[i];
}
coutendl;
}
void bubble(int a[], int n)
{
int i,j,t;
for(i=1;i=n-1;i++)
{
for(j=1; j=n-i; j++)
{
if(a[j]a[j+1])
{ t=a[j]; a[j]=a[j+1]; a[j+1]=t; }
}
}
}
(08181)#include iostream.h
#include iomanip.h
int d[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void main()
{
int year,month,day;
int days;
int count(int year,int month, int day);
int leap(int y);
cout”請輸入年份:”;
cinyear;
while(year=0)
{
cout”年份不能為負,請重新輸入:”;
cinyear;
}
if(leap(year)) //如果為閏年,2月份的天數為29
{ d[2]=29; }
cout”輸入月份:”;
cinmonth;
while(month1 || month12)
{
cout”月份在1月和12月之間,你的輸入有誤,請重新輸入:”;
cinmonth;
}
cout”輸入日數:”;
cinday;
while(day1 || day d[month])
{
cout”日數應在1和”d[month]”之間,請重新輸入:”endl;
cinday;
}
days=count(year,month,day);
coutyear”年”month”月”day”日是該年的第”days”天\n”;
}
int leap(int y)
{
if(y%4==0 y%100!=0 || y%400==0)
return 1;
else
return 0;
}
int count(int year,int month, int day)
{
int i,days=0;
for(i=1; imonth; i++)
{ days += d[i]; }
days+=day;
return days;
}
求《C語言程序設計》第四版,譚浩強編,清華大學出版社 課後習題答案
#includestdio.h
int main(){
fload a[3];
scanf(“%f,%f,%f”,a[0],a[1],a[2]);
float temp;
if(a[0]a[1]){
temp = a[0];
a[0] = a[1];
a[1] = temp;
}
if(a[1]a[2]){
temp = a[1];
a[1] = a[2];
a[2] = temp;
}
if(a[0]a[1]){
temp = a[0];
a[0] = a[1];
a[1] = temp;
}
print(“%f %f %f \n”, a[0],a[1],a[2]);
}
《C語言程序設計基礎》陳東方著清華大學出版社課後習題答案求詳解
大學學習資料免費下載網有
其他公共課程論壇
標題類似的信息:陳東方C語言編程基礎實驗和問題的解決方案(答案)
中國校企網路技術聯盟
c++程序設計基礎教程課後答案(清華大學出版社鄭莉 董淵著)
第 一 章 概述
1-1 簡述計算機程序設計語言的發展歷程。
解:
迄今為止計算機程序設計語言的發展經歷了機器語言、彙編語言、高級語言等階段,C++語言是一種面向對象的編程語言,也屬於高級語言。
1-2 面向對象的編程語言有哪些特點?
解:
面向對象的編程語言與以往各種編程語言有根本的不同,它設計的出發點就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關係。面向對象的編程語言將客觀事物看作具有屬性和行為的對象,通過抽象找出同一類對象的共同屬性(靜態特徵)和行為(動態特徵),形成類。通過類的繼承與多態可以很方便地實現代碼重用,大大縮短了軟體開發周期,並使得軟體風格統一。因此,面向對象的編程語言使程序能夠比較直接地反問題域的本來面目,軟體開發人員能夠利用人類認識事物所採用的一般思維方法來進行軟體開發。C++語言是目前應用最廣的面向對象的編程語言。
1-3 什麼是結構化程序設計方法?這種方法有哪些優點和缺點?
解:
結構化程序設計的思路是:自頂向下、逐步求精;其程序結構是按功能劃分為若干個基本模塊;各模塊之間的關係儘可能簡單,在功能上相對獨立;每一模塊內部均是由順序、選擇和循環三種基本結構組成;其模塊化實現的具體方法是使用子程序。結構化程序設計由於採用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個較複雜的程序系統設計任務分解成許多易於控制和處理的子任務,便於開發和維護。
雖然結構化程序設計方法具有很多的優點,但它仍是一種面向過程的程序設計方法,它把數據和處理數據的過程分離為相互獨立的實體。當數據結構改變時,所有相關的處理過程都要進行相應的修改,每一種相對於老問題的新方法都要帶來額外的開銷,程序的可重用性差。
由於圖形用戶界面的應用,程序運行由順序運行演變為事件驅動,使得軟體使用起來越來越方便,但開發起來卻越來越困難,對這種軟體的功能很難用過程來描述和實現,使用面向過程的方法來開發和維護都將非常困難。
1-4 什麼是對象?什麼是面向對象方法?這種方法有哪些特點?
解:
從一般意義上講,對象是現實世界中一個實際存在的事物,它可以是有形的,也可以是無形的。對象是構成世界的一個獨立單位,它具有自己的靜態特徵和動態特徵。面向對象方法中的對象,是系統中用來描述客觀事物的一個實體,它是用來構成系統的一個基本單位,由一組屬性和一組行為構成。
面向對象的方法將數據及對數據的操作方法放在一起,作為一個相互依存、不可分離的整體–對象。對同類型對象抽象出其共性,形成類。類中的大多數數據,只能用本類的方法進行處理。類通過一個簡單的外部介面,與外界發生關係,對象與對象之間通過消息進行通訊。這樣,程序模塊間的關係更為簡單,程序模塊的獨立性、數據的安全性就有了良好的保障。通過實現繼承與多態性,還可以大大提高程序的可重用性,使得軟體的開發和維護都更為方便。
面向對象方法所強調的基本原則,就是直接面對客觀存在的事物來進行軟體開發,將人們在日常生活中習慣的思維方式和表達方式應用在軟體開發中,使軟體開發從過分專業化的方法、規則和技巧中回到客觀世界,回到人們通常的思維。
1-5 什麼叫做封裝?
解:
封裝是面向對象方法的一個重要原則,就是把對象的屬性和服務結合成一個獨立的系統單位,並儘可能隱蔽對象的內部細節。
1-6 面向對象的軟體工程包括哪些主要內容?
解:
面向對象的軟體工程是面向對象方法在軟體工程領域的全面應用,它包括面向對象的分析(OOA)、面向對象的設計(OOD)、面向對象的編程(OOP)、面向對象的測試(OOT)和面向對象的軟體維護(OOSM)等主要內容。
1-7 簡述計算機內部的信息可分為幾類?
解:
計算機內部的信息可以分成控制信息和數據信息二大類;控制信息可分為指令和控制字兩類;數據信息可分為數值信息和非數值信息兩類。
1-8 什麼叫二進位?使用二進位有何優點和缺點?
解:
二進位是基數為2,每位的權是以2 為底的冪的進位,遵循逢二進一原則,基本符號為0和1。採用二進位碼錶示信息,有如下幾個優點:1.易於物理實現;2.二進位數運算簡單;3.機器可靠性高;4.通用性強。其缺點是它表示數的容量較小,表示同一個數,二進位較其他進位需要更多的位數。
1-9 請將以下十進位數值轉換為二進位和十六進位補碼:
(1)2 (2)9 (3)93
(4)-32 (5)65535 (6)-1
解:
(1) (2)10 = (10)2 = (2)16
(2) (9)10 = (1001)2 = (9)16
(3) (93)10 = (1011101)2 = (5D)16
(4) (-32)10 = (11100000)2 = (E0)16
(5) (65535)10 = (11111111 11111111)2 = (FFFF)16
(6) (-1)10 = (11111111 11111111)2 = (FFFF)16
1-10 請將以下數值轉換為十進位:
(1)(1010)2 (2)(10001111)2 (3)(01011111 11000011)2
(4)(7F)16 (5)(2D3E)16 (6)(F10E)16
解:
(1)(1010)2 = (10)10
(2)(10001111)2 = (143)10
(3)(01011111 11000011)2 = (24515)10
(4)(7F)16 = (127)10
(5)(2D3E)16 = (11582)10
(6)(F10E)16 = (61710)10
1-11 簡要比較原碼、反碼、補碼等幾種編碼方法。
解:
原碼:將符號位數字化為 0 或 1,數的絕對值與符號一起編碼,即所謂”符號——絕對值表示”的編碼。
正數的反碼和補碼與原碼錶示相同。
負數的反碼與原碼有如下關係:
符號位相同(仍用1表示),其餘各位取反(0變1,1變0)。
補碼由該數反碼的最末位加1求得。
第 二 章 C++簡單程序設計
2-1 C++語言有那些主要特點和優點?
解:
C++語言的主要特點表現在兩個方面,一是全面兼容C,二是支持面向對象的方法。C++是一個更好的C,它保持了C的簡潔、高效、接近彙編語言、具有良好的可讀性和可移植性等特點,對C的類型系統進行了改革和擴充,因此C++比C更安全,C++的編譯系統能檢查出更多的類型錯誤。 C++語言最重要的特點是支持面向對象。
2-2 下列標識符哪些是合法的?
Program, -page, _lock, test2, 3in1, @mail, A_B_C_D
解:
Program, _lock, test2, A_B_C_D是合法的標識符,其它的不是。
2-3 例2.1中每條語句的作用是什麼?
#include iostream.h
void main(void)
{
cout”Hello!\n”;
cout”Welcome to c++!\n”;
}
解:
#include iostream.h //指示編譯器將文件iostream.h中的代碼
//嵌入到該程序中該指令所在的地方
void main() //主函數名,void 表示函數沒有返回值
{ //函數體標誌
cout”Hello!\n”; //輸出字元串Hello!到標準輸出設備(顯示器)上。
cout”Welcome to c++!\n”; //輸出字元串Welcome to c++!
}
在屏幕輸出如下:
Hello!
Welcome to c++!
2-4 使用關鍵字const而不是#define語句的好處有哪些?
解:
const定義的常量是有類型的,所以在使用它們時編譯器可以查錯;而且,這些變數在調試時仍然是可見的。
2-5 請寫出C++語句聲明一個常量PI,值為3.1416;再聲明一個浮點型變數a,把PI的值賦給a。
解:
const float PI = 3.1416;
float a = PI;
2-6 在下面的枚舉類型中,Blue的值是多少?
enum COLOR ;
解:
Blue = 102
2-7 注釋有什麼作用?C++中有哪幾種注釋的方法?他們之間有什麼區別?
解:
注釋在程序中的作用是對程序進行註解和說明,以便於閱讀。編譯系統在對源程序進行編譯時不理會注釋部分,因此注釋對於程序的功能實現不起任何作用。而且由於編譯時忽略注釋部分,所以注釋內容不會增加最終產生的可執行程序的大小。適當地使用注釋,能夠提高程序的可讀性。在C++中,有兩種給出注釋的方法:一種是延用C語言方法,使用”/*”和”*/”括起注釋文字。另一種方法是使用”//”,從”//”開始,直到它所在行的行尾,所有字元都被作為注釋處理。
2-8 什麼叫做表達式?x = 5 + 7是一個表達式嗎?它的值是多少?
解:
任何一個用於計算值的公式都可稱為表達式。x = 5 + 7是一個表達式,它的值為12。
2-9 下列表達式的值是多少?
1. 201 / 4
2. 201 % 4
3. 201 / 4.0
解:
1. 50
2. 1
3. 50.25
2-10 執行完下列語句後,a、b、c三個變數的值為多少?
a = 30;
b = a++;
c = ++a;
解:
a:32 ; b:30 ; c:32;
2-11 在一個for循環中,可以初始化多個變數嗎?如何實現?
解:
在for循環設置條件的第一個”;”前,用,分隔不同的賦值表達式。
例如:
for (x = 0, y = 10; x 100; x++, y++)
2-12 執行完下列語句後,n的值為多少?
int n;
for (n = 0; n 100; n++)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/155394.html