當前位置:首頁 » 編程語言 » c語言把316
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言把316

發布時間: 2022-11-13 03:23:11

c語言高手過來幫幫忙

這個程序是誰寫的啊,一點都不規范,而且還不完整,
把main函數里的switch語句後加個(c)就可以正常編譯運行了。
程序的作用是選擇要轉換為陰歷還是陽歷,例如選擇陰歷好後輸入一組年月日(格式例1981.11.30,在1980到2015年之間),之後程序將為你轉換為陰歷(1981.11.5)

幫你注釋了兩個函數,另外兩個函數的思想相同,
總的來說這個程序的邏輯不是很好,不用心看的話很難理解作者的想法,我沒時間,要不幫你重新寫了,

如果還是看不懂你再留言。

#include<stdio.h>
#include<bios.h>
struct data
{
int year1;
int specialmonth;
int month1[13];
};

struct day
{
int year2;
int month2;
int day2;
};

int dis_day1(struct day *op,int *p) /*計算並返回當年距1980年的天數*/
{
int n=0,x;
n+=(op->year2-1980)*365;
for(x=1980;x<op->year2;x++) /*如果當年是閏年,天數加1*/
if((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))
n+=1;
for(x=1;x<(op->month2);x++)
n+=*(p+x-1);
x=op->year2;
if(((x%4==0&&x%100!=0)||(x%100==0&&x%400==0))&&op->month2>2) /*閏年月份大於2月才多1天*/
n+=1;
n+=(op->day2-1); /*小於2月的話,就算當年是閏年,也要減1天*/
return n;
}

int dis_day2(struct day *op,struct data *p)
{
int n=0,maxmonth,i,x;
for(x=1980;x<op->year2;x++)
{
if((p+x-1979)->specialmonth==0)
maxmonth=12;
else maxmonth=13;
for(i=0;i<maxmonth;i++)
if((p+x-1979)->month1[i]==0)
n+=29;
else n+=30;
}
if((p+op->year2-1979)->specialmonth!=0)
if((p+op->year2-1979)->specialmonth<op->month2)
op->month2++;
for(i=1;i<op->month2;i++)
{
if((p+op->year2-1979)->month1[i-1]==0)
n+=29;
else n+=30;
}
n+=(op->day2-1);
n+=46;
return n;
}

/*陽轉陰;這里比較復雜,作者的演算法大概是:利用前面算出來的天數,直接在自己定義的陰歷表裡面*/
/*以1979.11.14為起點去代換,*/
void work_out2(struct day *re,struct data *p,int n)
{
int n1=0,maxday,maxmonth,month,day,judge=0;
re->year2=1979;re->month2=11;re->day2=14; /*這里的1979.11.14是1980.1.1的陰歷*/
while(1)
{
if(judge==1)
break;
if(p->specialmonth==0)
maxmonth=12;
else
maxmonth=13; /*有閏月的年份多1個月*/
/*下面的if語句是判斷當年還剩幾個月(maxmonth-month),如果是79年的話,因為是從*/
/*11.14開始,因此只剩1個月(maxmonth-month=1)。 */
if(p->year1==1979)
month=12;
/*其他年份將有(maxmonth-month)12到13個月,至於能否全用到就要看前面算出來的天數n了*/
else
month=1;
for(;month<=maxmonth;month++)
{
if(p->month1[month-1]==0) /*判斷當月是大月還是小月*/
maxday=29;
else maxday=30;
if((p->year1==1979)&&(maxday==30)) /*79年的11月是大月,當月日期計數從14號開始*/
day=14;
else day=1; /*其他年份的當月計數從1號開始*/
for(;day<=maxday;day++)
{
if(n1==n)
{
if(maxmonth==13&&month>p->specialmonth)
month-=1;
re->year2=p->year1;
re->month2=month;
re->day2=day;
judge=1;
break;
}
else n1+=1;
}
if(judge==1)break;
}
p++;
}
}

void work_out1(struct day *re,int n,int *p)
{
int year=1980,n1=0,month,day,maxday,judge=0;
re->year2=1980;re->month2=1;re->day2=1;
while(1)
{
*(p+1)=28;
if(judge==1)
break;
if((year%4==0&&year%100!=0)||(year%100==0&&year%400==0))
*(p+1)=29;
for(month=1;month<=12;month++)
{
maxday=*(p+month-1);
for(day=1;day<=maxday;day++)
{
if(n1==n)
{
re->year2=year;
re->month2=month;
re->day2=day;
judge=1;
break;
}
else n1++;
}
if(judge==1)
break;
}
year++;
}
}

main()
{
int n,c;
int sun[12]=;
int *p1=sun;
struct day ob,re;
struct data *p2;
/*下面是1979年到2015年的農歷表,第1個數字代表年份;第2個數字代表當年的閏月是幾月 */
struct data year[37]={
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

};
p2=year;
printf(" WARNING \n");
printf(" you should take care of it :\n");
printf(" the limted range:\n");
printf(" lunar calendar: 1980.1.1----2015.11.12\n"); /*陽歷*/
printf(" soalr calendar: 1980.1.1-----2015.12.31\n"); /*陰歷*/

while(1)
{
printf(" please choose one way a/b?\n");
printf(" a: soalr calendar---->lunar calendar\n");
printf(" b: lunar calendar---->soalr calendar\n");
do /*選擇除a,b鍵之外的其他鍵無效*/
{
c=getchar();
}while(c!='a'&&c!='b');
do
{
printf("your must pay attention to the form\n");
printf("pleae input your date:\n");
scanf("%d.%d.%d",&ob.year2,&ob.month2,&ob.day2); /*輸入年、月、日*/
}while(ob.year2<1980||ob.year2>=2016||ob.month2<1||ob.month2>12||ob.day2<1||ob.day2>31);
switch(c)
{
case 'a': /*陽轉陰*/
n=dis_day1(&ob, p1);
printf("%d\n",n);
work_out2(&re,p2,n);
printf(" the result is %d.%d.%d\n",re.year2,re.month2,re.day2);
break;
case 'b': /*陰轉陽*/
n=dis_day2(&ob,p2);
printf("%d\n",n);
work_out1(&re,n,p1);
printf(" the result is %d.%d.%d\n",re.year2,re.month2,re.day2);
if(ob.month2==(p2+ob.year2-1979)->specialmonth)
{
if((ob.day2!=30)||((p2+ob.year2-1979)->month1[ob.month2]==1))
{
n+=((p2+ob.year2-1979)->month1[ob.month2-1]+29);
work_out1(&re,n,p1);
printf("there is a other result\n:\t%d.%d.%d\n",re.year2,re.month2,re.day2);
}
}
break;
defluat: break;
}
printf("if you want to try again,y/n?\n");
do
{
c=bioskey(0);
}while(c!=0x316e&&c!=0x1579);
if(c==0x316e)
break;
}
}

❷ C語言 do-while語句

D
A
D
B
A

❸ C語言編程:判斷是否滿足條件的一對正整數

int isok(int a,int b)
{return a+b==316&&(a%13==0&&b%11==0||a%11==0&&b%13==0);
}

❹ c語言編程(不是c++哦)

我這邊先寫了第一題答案 以及第二題答案!你看,要是符合你要求的話,再繼續!
/**
* @author 方涵萍
*right (C)[email protected] 2013-05-05
*
* 輸出100以內個位數為6且能被3整除的所有數。
*/
#include <stdio.h>
#include <stdlib.h>
//輸出100以內個位數為6且能被3整除的所有數。x為零時,結束輸入
void divisible()
{
int x;
while(1)
{
scanf("%d",&x);
if(x==0)
exit(0);
else if(x%10==6 && x/3)
printf("輸入的是:%d\n",x);
else
printf("你輸入的值個位數不為6且能被3整除的所有數\n");
}
}

int main(int argc,char **argv)
{
printf("請輸入一個100以內的整數!若退出,請輸入「0」\n");
divisible();
return 0;
}

/**
* @author 方涵萍
*right (C)[email protected] 2013-05-05
*
* 鍵盤輸入6 位學生的5門課成績,分別統計出每個學生的平均成績。
*/
#include <stdio.h>
#include <stdlib.h>
struct student
{
float chinese;//語文成績
float english;//英語
float math;//數學
float c;//c語言
float java;//java
}stu[6];
//分別統計每個學生的平均分
void average(int i)
{
float total=0;
total+=stu[i].chinese;
total+=stu[i].english;
total+=stu[i].math;
total+=stu[i].c;
total+=stu[i].java;
printf("第%d個學生的平均分為%f\n",i+1,total/5);
}
int main(int argc,char **argv)
{
int i;
printf("請分別輸入輸入6 位學生的5門課成績!\n");
for(i=0;i<1;i++)
{
printf("第%d個學生的成績\n",i+1);
printf("\t語文成績:");
scanf("%f",&stu[i].chinese);
printf("\t英語成績:");
scanf("%f",&stu[i].english);
printf("\t數學成績:");
scanf("%f",&stu[i].math);
printf("\tc語言成績:");
scanf("%f",&stu[i].c);
printf("\tjava成績:");
scanf("%f",&stu[i].java);
}
//計算平均分
for(i=0;i<1;i++)
{
printf("\n計算每個學生的平均分\n");
average(i);
}
return 0;
}

❺ 把316這個數表示為兩個數之和,是其中一個能被13整除,而另一個能被11整除。編寫程序輸出這兩個數

樓上的做法太浪費資源了,看我的
#include "stdio.h"
void main()
{
int i = 0;
for(i=0;i<316;i++)
{
if( (i % 11 == 0) && ((316-i) % 13 == 0)) printf("%3d",i);
}
}

❻ C語言高手請進來11223

你媽,這是考試題呀,,,,幹嘛要人幫你做啊,,上課又不好好聽!!!

❼ 華師在線09面向對象程序設計作業答案

--------------------------------------------------------------------------------

作業名稱:面向對象程序設計
作業總分:100
學員姓名:mj07b201 學員成績:95
標准題總分:100 標准題得分:95
詳細信息:
題號:1 題型:單選題 本題分數:1
內容:
一個類的友元函數能夠訪問該類的( )
選項:
A、A)私有成員
B、B)保護成員
C、C)公有成員
D、D)所有成員

學員答案:
D

題號:2 題型:單選題 本題分數:1
內容:
下面關於類和對象的描述中,錯誤的是( )
選項:
A、A)類就是C語言中的結構體類型,對象就是C語言中的結構體變數
B、B)類和對象之間的關系是抽象和具體的關系
C、 C)對象是類的實例,一個對象必須屬於一個已知的類
D、 D)類是具有共同行為的若干對象的統一描述體

學員答案:
A

題號:3 題型:單選題 本題分數:1
內容:
以下各選項組中,均是C++語言關鍵字的組是( )
選項:
A、A) public operator this
B、 B)shod string static
C、 C)it while>=
D、 D)private cout printf

學員答案:
A

題號:4 題型:單選題 本題分數:2
內容:
設int a=10,b=11,c=12;,表達式(a+b) 的值為( )
選項:
A、A)2
B、 B)0
C、 C)-2
D、 D)1

學員答案:
B

題號:5 題型:單選題 本題分數:1
內容:
下列描述正確的是( )
選項:
A、A)表示m>n為true或mn&&m
B、 B)switch語句結構中必須有default語句
C、 C)if語句結構中必須有else語句
D、 D)如果至少有一個操作數為true,則包含「‖」運算符的表達式為true

學員答案:
D

題號:6 題型:單選題 本題分數:1
內容:
下面關於數組的描述錯誤的是( )
選項:
A、A)在C++語言中數組的名字就是指向該數組第一個元素的指針
B、 B)長度為n的數組,下標的范圍是0-n-1
C、 C)數組的大小必須在編譯時確定
D、 D)數組只能通過值參數和引用參數兩種方式傳遞給函數

學員答案:
D

題號:7 題型:單選題 本題分數:2
內容:
下面程序錯誤的語句是( )①#include ②void main() ③{ ④int*p=new int[1]; ⑤p=9; ⑥cout <<*p< ⑦delete[]p ⑧}
選項:
A、A)④
B、B)⑤
C、C)⑥
D、D)⑦

學員答案:
B

題號:8 題型:單選題 本題分數:2
內容:
下面的哪個選項不能作為函數的返回類型?( )
選項:
A、A)void
B、B)int
C、C)new
D、D)long

學員答案:
C

題號:9 題型:單選題 本題分數:1
內容:
不能作為重載函數的調用的依據是( )
選項:
A、A)參數個數
B、 B)參數類型
C、 C)函數類型
D、 D)函數名稱

學員答案:
B

題號:10 題型:單選題 本題分數:2
內容:
下列程序的輸出結果為( ),以下是引用片段: #include< iostream. h> int func(int n) { if〔n<1)return 1; else return n+func(n-1): return 0; } void main() { cout< 選項:
A、A) 0
B、B)10
C、C)15
D、D)16

學員答案:
D

題號:11 題型:單選題 本題分數:1
內容:
在C++語言中,數據封裝要解決的問題是( )
選項:
A、A)數據的規范化
B、 B)便於數據轉換
C、 C)避免數據丟失
D、 D)防止不同模塊之間數據的非法訪問

學員答案:
D

題號:12 題型:單選題 本題分數:2
內容:
以下程序中,錯誤的行是 ①#include ②class A ③{ ④ public: ⑤ int n=2: ⑥ A( int val){cout< 選項:
A、A)⑤
B、B)⑥
C、C)⑦
D、D)⑩

學員答案:
A

題號:13 題型:單選題 本題分數:1
內容:
下面有關重載函數的說法中正確的是()
選項:
A、A)重載函數必須具有不同的返回值類型
B、 B)重載函數形參個數必須不同
C、C)重載函數必須有不同的形參列表
D、D)重載函數名可以不同

學員答案:
C

題號:14 題型:單選題 本題分數:1
內容:
下列關於構造函數的描述中,錯誤的是()
選項:
A、A)構造函數可以設置默認參數
B、B)構造函數在定義類對象時自動執行
C、C)構造函數可以是內聯函數
D、D)構造函數不可以重載

學員答案:
D

題號:15 題型:單選題 本題分數:1
內容:
下面描述中,表達錯誤的是()
選項:
A、A)公有繼承時基類中的public成員在派生類中仍是public的
B、 B)公有繼承是基類中的private成員在派生類中仍是private的
C、C)公有繼承時基類中的protected成員在派生類中仍是protected的
D、 D)私有繼承時基類中的public成員在派生類中是private的

學員答案:
B

題號:16 題型:單選題 本題分數:2
內容:
在進行完任何C++流的操作後,都可以用C++流的有關成員函數檢測流的狀態;其中只能用於檢測輸入流狀態的操作函數名稱是()
選項:
A、A)fail
B、B)eof
C、 C)bad
D、D)good

學員答案:
B

題號:17 題型:單選題 本題分數:1
內容:
下列關於C++語言類的描述中錯誤的是( )
選項:
A、A)類用於描述事物的屬性和對事物的操作
B、 B)類與類之間通過封裝而具有明確的獨立性
C、C)類與類之間必須是平等的關系,而不能組成層次結構
D、 D)類與類之間可以通過一些方法進行通信和聯絡

學員答案:
C

題號:18 題型:單選題 本題分數:1
內容:
以下敘述中正確的是( )
選項:
A、A)構成C++語言程序的基本單位是類
B、 B)可以在一個函數中定義另一個函數
C、 C) main()函數必須放在其他函數之前
D、 D)所有被調用的函數一定要在調用之前進行定義

學員答案:
A

題號:19 題型:單選題 本題分數:2
內容:
己知有定義 以下是引用片段: const int D=5; int i=1; double f=0.32: char c=15; 則下列選項錯誤的是( )
選項:
A、A)++i
B、 B)D--
C、 C)C++
D、 D)--f

學員答案:
B

題號:20 題型:單選題 本題分數:2
內容:
下面程序的功能是把316表示為兩個加數的和,使兩個加數分別能被13和11整除,在劃線處應填入的選項是( ),以下是引用片段: void main() { int i=0,j,k; do{i++;k=316-13*i;}while( ); j=k/11; cout<<」316=13*」< }
選項:
A、A)k/11
B、B)k% 11
C、 C)k/11==0
D、D)k%11==0

學員答案:
B

題號:21 題型:單選題 本題分數:2
內容:
設有數組定義:char array[]=」China";,則數組array所佔的空間為( )
選項:
A、A)4個位元組
B、B)5個位元組
C、C) 6個位元組
D、D)7個位元組

學員答案:
C

題號:22 題型:單選題 本題分數:2
內容:
若已定義: int a[]={0,1,2,3,4,5,6,7,8,9},*P=a,i; 其中O≤i≤9,則對a數組元素不正確的引用是( )
選項:
A、A)a[p-a]
B、 B)*(&a[i])
C、C)p[i]
D、D)a[10]

學員答案:
D

題號:23 題型:單選題 本題分數:2
內容:
函數fun的返回值是( ) 以下是引用片段: fun(char*a,char*b) { int num=0,n=0; while(*(a+num)!=『\0』)num++; while(b[n]){*(a+num)=b[n];num++;n++;} return num; }
選項:
A、A)字元串a的長度
B、B)字元串b的長度
C、C)字元串a和b的長度之差
D、D)字元串a和b的長度之和

學員答案:
D

題號:24 題型:單選題 本題分數:2
內容:
下面程序的結果為( ),以下是引用片段: void main() { int i; int a[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) cout< 選項:
A、A)1 5 9
B、B)7 5 3
C、C)3 5 7
D、D) 5 9 1

學員答案:
B

題號:25 題型:單選題 本題分數:1
內容:
下列描述中哪個是正確的( )。
選項:
A、A)私有派生的子類無法訪問父類的成員
B、 B)類A的私有派生子類的派生類,C無法初始化其祖先類A對象的屬性,因為類A的成員對類C是不可訪問的
C、 C)私有派生類不能作為基類派生子類
D、 D)私有派生類的所有子孫類將無法繼續繼承該類的成員

學員答案:
B

題號:26 題型:單選題 本題分數:1
內容:
下列關於構造函數說法不正確的是( )
選項:
A、A)構造函數必須與類同名
B、 B)構造函數可以省略不寫
C、 C)構造函數必須有返回值
D、 D)在構造函數中可以對類中的成員進行初始化

學員答案:
C

題號:27 題型:單選題 本題分數:1
內容:
如果友元函數重載一個運算符時,其參數表中沒有任何參數則說明該運算符是( )
選項:
A、A)一元運算符
B、B)二元運算符
C、 C)選項A)和選項B)都可能
D、D)重載錯誤

學員答案:
D

題號:28 題型:單選題 本題分數:1
內容:
在重載一個運算符時,如果其參數表中有一個參數,則說明該運算符是( )
選項:
A、A)一元成員運算符
B、B)二元成員運算符
C、C)一元友元運算符
D、D)選項B)和選項C)都可能

學員答案:
D

題號:29 題型:單選題 本題分數:2
內容:
建立派生類對象時,3種構造函數分別是a(基類的構造函數)、b(成員對象的構造函數)、c(派生類的構造函數)這3種構造函數的調用順序為( )
選項:
A、A)abc
B、 B)acb
C、 C)cab
D、 D)cba

學員答案:
A

題號:30 題型:單選題 本題分數:2
內容:
下面關於虛函數的描述,錯誤的是( )
選項:
A、A)在成員函數聲明的前面加上virtual修飾,就可把該函數聲明為虛函數
B、 B)基類中說明了虛函數後,派生類中對應的函數也必須說明為虛函數
C、 C)虛函數可以是另一個類的友元函數,但不能是靜態成員函數
D、 D)基類中說明的純虛函數在其任何派生類中都必須實現

學員答案:
B

題號:31 題型:單選題 本題分數:2
內容:
下面關於模板的描述,錯誤的是( )
選項:
A、A)函數模板和類模板的參數可以是任意的數據類型
B、 B)類模板不能直接使用,必須先實例化為相應的模板類.然後定義了模板類的對象後才能使用
C、 C)函數模板不能直接使用,需要實例化為模板函數後才能使用
D、 D)類模板的成員函數都是模板函數

學員答案:
A

題號:32 題型:單選題 本題分數:2
內容:
語句ofstream f(」SALARY. DAT",ios::app iios::binary);的功能是建立流對象f,試圖打開文件SAL:aRY. D AT並與之連接,並且( )
選項:
A、A)若文件存在,將文件寫指針定位於文件尾
B、若文件不存在,建立一個新文件
C、 B)若文件存在,將其置為空文件
D、若文件不存在,打開失敗
E、 C)若文件存在,將文件寫指針定位於文件首
F、若文件不存在,建立一個新文件
G、 D)若文件存在,打開失敗
H、若文件不存在,建立一個新文件

學員答案:
A

題號:33 題型:單選題 本題分數:2
內容:
下面程序的運行結果是( ) 以下是引用片段:#include void main(){ int num=1; int &ref=num; ref=ref+2; cout< 選項:
A、A)13
B、B)16
C、C)36
D、D)33

學員答案:
C

題號:34 題型:單選題 本題分數:2
內容:
設有定義int x; float v;,則10+x+v值的數據類型是( )
選項:
A、A)int
B、B)double
C、C)float
D、D)不確定

學員答案:
C

題號:35 題型:單選題 本題分數:2
內容:
下列程序的執行結果為( ) 以下是引用片段:#include void main() { int a=3,b=0; int*p=&a; b=+a++; cout<<*p<<","< 選項:
A、A)3,4
B、B)4,3
C、C)3,4
D、D)4,4

學員答案:
B

題號:36 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段:#include void main() { for(int a=0,x=0;!x&&a<=10;a++) { a++; }; cout< 選項:
A、A)10
B、B)11
C、C)12
D、D) 0

學員答案:
C

題號:37 題型:單選題 本題分數:2
內容:
下列程序的輸出結果為( ) 以下是引用片段:#include void main() { char *a[]={"hello","the","world"}; char**pa=a; pa++; cout<<*pa; }
選項:
A、A)hello
B、 B)the
C、 C)world
D、 D)hellotheworld

學員答案:
B

題號:38 題型:單選題 本題分數:1
內容:
決定C++語言中函數的返回值類型的是( )
選項:
A、A) return語句中的表達式類型
B、 B)調用該函數時系統隨機產生的類型
C、 C)調用該函數時的主調用函數類型
D、 D)在定義該函數時所指定的數據類型

學員答案:
D

題號:39 題型:單選題 本題分數:2
內容:
下列程序的運行結果為( )以下是引用片段: #includevoid print(double a){cout<<++a;} void print(int a,int b) { cout< A、A)1.2 34
B、 B)2.2 34
C、 C)1.2 43
D、 D)2.2 43

學員答案:
D

題號:40 題型:單選題 本題分數:1
內容:
對類成員訪問許可權的控制,是通過設置成員的訪問控制屬性實現的,下列不是訪問控制屬性的是( )
選項:
A、A)公有類型
B、 B)私有類型
C、 C)保護類型
D、 D)友元類型

學員答案:
D

題號:41 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段: #include class A { public: A(){cout<<"1";} ~A(){cout<<"2";} }; class B:public A { public: B(){cout<<"3";} ~B(){cout<<"4";} }; void main() { B b; }
選項:
A、A)1234
B、 B)1324
C、 C)1342
D、 D)3142

學員答案:
C

題號:42 題型:單選題 本題分數:2
內容:
下列關於多態性的描述,錯誤的是( )
選項:
A、A)C++語言的多態性分為編譯時的多態性和運行時的多態性
B、 B)編譯時的多態性可通過函數重載實現
C、 C)運行時的多態性可通過模板和虛函數實現
D、 D)實現運行時多態性的機制稱為動態綁定

學員答案:
C

題號:43 題型:單選題 本題分數:2
內容:
當使用fstream流類定義一個流對象並打開一個磁碟文件時,文件的隱含打開方式為( )
選項:
A、A)ios::in
B、 B)ios::out
C、 C)ios::in|ios::out
D、 D)以上都不對

學員答案:
D

題號:44 題型:單選題 本題分數:2
內容:
下列程序的運行結果是( ) 以下是引用片段: #include class A { int a; public: A(){a=0;} A(int as) { a=as; cout< 選項:
A、A 23
B、B 12
C、 C 35
D、D 25

學員答案:
B

題號:45 題型:單選題 本題分數:2
內容:
下面程序的輸出結果是( ) 以下是引用片段: #include class example { int a; public: example(int b){a=b++;} void print(){a=a+1;cout< A、A)2 2
B、B)4 3
C、C)4 2
D、D)3 2

學員答案:
C

題號:46 題型:單選題 本題分數:2
內容:
在派生類中重新定義虛函數時必須在( )方面與基類保持一致。
選項:
A、A 、 參數個數
B、B 、 參數名字
C、C 、 操作內容
D、D 、 賦值

學員答案:
A

題號:47 題型:單選題 本題分數:2
內容:
C++ 類體系中,不能被派生類繼承的有( )。
選項:
A、A 、 轉換函數
B、B 、 構造函數
C、C 、 虛函數
D、D 、 靜態成員函數

學員答案:
B

題號:48 題型:單選題 本題分數:2
內容:
下列虛基類的聲明中正確的是( )
選項:
A、A 、 class virtual B: public A
B、B 、 class B: virtual public A
C、C 、 class B: public A virtual
D、D 、 virtual class B: public A

學員答案:
B

題號:49 題型:單選題 本題分數:1
內容:
C++語言是從早期的C語言逐漸發展演變而來的.與C語言相比,它在求解問題方法上進行的最大改進是( )
選項:
A、A)面向過程
B、B)面向對象
C、C)安全性
D、D)復用性

學員答案:
B

題號:50 題型:單選題 本題分數:1
內容:
C++語言的跳轉語句中,對於break和continue說法正確的是()
選項:
A、A)break語句只應用與循環體中
B、B)continue語句只應用與循環體中
C、C)break是無條件跳轉語句,continue不是
D、D)break和continue的跳轉范圍不夠明確,容易產生問題

學員答案:
B

題號:51 題型:單選題 本題分數:2
內容:
下列關於模板的說法正確的是( )
選項:
A、A)模板的實參在任何時候都可以省略
B、B)類模板與模板類所指的是同一概念
C、 C)類模板的參數必須是虛擬類型的
D、D)類模板中的成員函數全部都是模板函數

學員答案:
D

題號:52 題型:單選題 本題分數:2
內容:
表示在輸出時顯示小數位,和在文件輸入時判斷文件尾的函數分別是( )
選項:
A、A) showbase()和eof()
B、B)showpoint()和eof()
C、 C)showpoint()和bad()
D、D)showpoint()和good()

學員答案:
B

題號:53 題型:單選題 本題分數:2
內容:
若定義int k=7,x=12;,則值為3的表達式是( )
選項:
A、A)x%=(k%=5)
B、B)x%=(k-k%5)
C、 C)x%=k-k%5
D、D)(x%=k)-(k%=5)

學員答案:
D

題號:54 題型:單選題 本題分數:2
內容:
在位運算中,操作數每右移一位,其結果相當於( )
選項:
A、A)操作數乘以2
B、B)操作數除以2
C、C)操作數乘以4
D、D)操作數除以4

學員答案:
B

題號:55 題型:單選題 本題分數:2
內容:
有以下結構體說明和變數的定義,且指針p指向變數a,指針q指向變數b。則不能把節點b連接到節點a 之後的語句是( ), 以下是引用片段: struct node { char data; struct node*next; }a,b,*p=&a,*q=&b;
選項:
A、A)a. next=q
B、 B)p. next=&b
C、 C)p->next=&b
D、 D)(*p).next=q

學員答案:
B

題號:56 題型:單選題 本題分數:2
內容:
下面程序的運行結果為( ) 以下是引用片段: #include class A { int num; public: A(int i){num=i;} A(A &a){num=a. num++;} void print(){cout< 選項:
A、A)11
B、 B)12
C、 C)21
D、 D)22

學員答案:
C

題號:57 題型:單選題 本題分數:2
內容:
如果類A被說明成類B的友元,則( )
選項:
A、A)類A的成員即類B的成員
B、 B)類B的成員即類A的成員
C、 C)類A的成員函數不得訪問類B的成員
D、 D)類B不一定是類A的友元

學員答案:
D

題號:58 題型:單選題 本題分數:2
內容:
可以用p.a的形式訪問派生類對象P的基類成員a,其中a是( )
選項:
A、A)私有繼承的公有成員
B、 B)公有繼承的私有成員
C、 C)公有繼承的保護成員
D、 D)公有繼承的公有成員

學員答案:
D

題號:59 題型:單選題 本題分數:2
內容:
for(int x=0,y=0;!x& &y<=5;y++)語句執行循環的次數是()
選項:
A、A)0
B、 B)5
C、 C)6
D、 D)無次數

學員答案:
C

題號:60 題型:單選題 本題分數:2
內容:
考慮函數原型void test(int a,int b=7,char="*"),下面的函數調用中,屬於不合法調用的是()
選項:
A、A)test(5)
B、 B)test(5,8)
C、 C)test(6,"#")
D、 D)test(0,0."*")

學員答案:
C
記得給我分啊

❽ C語言為兩個加數和

  1. 定義兩個變數 i,k ;並且 i*13+k=316 ;

    -> k=316-13*i ;

首先程序設定i為0 (應該是以1開始的,我覺得設計題目應該錯了)

然後判斷316-i*13的差 是否被11整除 也就是k是否被11整除,

整除的公式叫求模 即判斷 (k%11==0) ?

如果不等於0,i自加 再求k是否能被11整除。

直到能被整除則停止循環。


PS,雖然這題我一看就懂了,但是我發現要告訴別人理解還真難,可見當老師也不容易

❾ 遇到一個C語言問題,主要是題目看不懂。不知道是什麼意思

填上 k%11;
中文解釋一下這題的邏輯:
定義啥的就不說了,do開始
循環體:先執行,這時候i是一個整數。i作為13的倍數。
13*i出來的數,肯定就是能被13整除的。兩個數加起來要湊316.那剩下的就由11的倍數來湊,也就是K。
所以括弧內應該填上K是否為11的倍數。如果不是11的倍數,那就循環,尋找下一個匹配的數。如果是11的倍數了。那就符合答案了。
while(k%11)的解釋:當k不能被整除時,執行循環。
你自己理一下思路

❿ 求四川省歷年C語言二級真題或者模擬題

四川省普通高等學校計算機應用知識和能力
第二十八次等級考試
二級(C與C++語言) 筆 試 試 卷
時間: 2008年4月 19 日
上午 9:00—11:00
第一部分
軟體技術基礎
(共15分)
一、是非判斷題(每小題1分,共10分)
( 判斷下列各題是否正確,如正確,在客觀答題紙上對應編號選A,否則選B )
1. 在程序設計中,常用一維數組來表示線性表的順序存儲空間。 ( 1 )
2. 數據在計算機內存中的表示是指數據的存儲結構。 ( 2 )
3. Windows是多用戶多任務操作系統。 ( 3 )
4. 能影響中斷響應次序的技術是中斷優先順序和中斷屏蔽。 ( 4 )
5. 鏈表可以隨機訪問任意一個結點,而順序表則不能。 ( 5 )
6. 作業與進程的主要區別是前者是由用戶提交,後者是由系統自動生成。 ( 6 )
7. 數據的邏輯結構是從邏輯關繫上描述數據,它與數據的存儲結構無關,是獨立於計算機的。 ( 7 )
8. 中斷控制方式適用於外存同CPU之間進行大量數據交換。 ( 8 )
9. 提供沒有錯誤的程序是提高軟體的可維護性的基本措施。 ( 9 )
10.軟體結構是以指令為基礎而組成的一種控制層次結構。 ( 10 )

二、選擇題(每小題1分,共5分)
1. 數據流圖是用於描述結構化方法中( 11 ) 工作階段的工具。
11 (A) 可行性分析 (B) 程序編碼
(C) 詳細設計 (D) 需要分析
2. 若進棧序列為1,2,3,4,且進棧過程中可以出棧,則不可能的出棧序列是( 12 )。
12 (A) 1,4,3,2 (B) 3,1,4,2
(C) 2,3,4,1 (D) 3,4,2,1
3. 任何兩個並發進程之間( 13 )。
13 (A) 可能存在同步或互斥關系 (B) 一定存在同步關系
(C) 一定彼此獨立無關 (D) 一定存在互斥關系
4. 以下的哪個特徵不是分時操作系統的主要特徵( 14 )。
14 (A) 分時性 (B) 獨占性
(C) 交互性 (D) 多路性
5. 需求分析中開發人員主要從用戶那裡了解 ( 15 )。
15 (A) 軟體的維護 (B) 軟體的結構
(C) 軟體做什麼 (D) 軟體的測試

第二部分
C與C++語言程序設計
(共85分)
一、單項選擇題 ( 每小題1分,共10分 )
1. C++語言對C語言做了很多改進,C++語言相對於C語言的最根本的變化是( D) 。
16 (A) 增加了一些新的運算符 (B) 允許函數設置預設參數
(C) 規定函數說明符必須用原型 (D) 引進了類和對象的概念
2. 決定C++語言中函數的返回值類型的是( B )。
17 (A) return語句中的表達式類型
(B) 在定義該函數時所指定的數據類型
(C) 調用該函數時的主調函數類型
(D) 調用該函數時系統隨機產生的類型
3. C語言中運算對象必須是整型的運算符是 ( A )。
18 (A) % (B) / (C) = (D) 《=
4. 若fp是指向某文件的指針,且已讀到文件末尾,則函數feof(fp)的返回值是( C )。
19 (A) EOF (B) -1 (C) 1 (D) NULL
5. 已知:int a=15,b=16; 則表達式(a&b)&&br的結果是( A )。
20 (A) 1 (B) 0 (C) 16 (D) 31
6. 已知:int arr[10]; 則對arr數組元素的正確引用是( D )。
21 (A) arr[10] (B) arr[3.5] (C) arr(5) (D) arr[10-10]
7. 下列程序中,循環結束後b的值是( C )。
vpod main()
{
int a=1,b=10;
do
{
b-=a;
a++;
}while(b-->10);

}
22 (A) -1 (B) -2 (C) 8 (D) 9
8. 以下程序的輸出結果是 ( 23 )。
# define M(x,y,z) x*y+z
main()
{
int a=1,b=2,c=3;
printf("%d\n",M(a+b,b+c,c+a));
}
23 (A) 12 (B) 15 (C) 17 (D) 19
9. 下面程序把數組元素中的最大值放入a[0]中,則在if語句下劃線的條件表達式應填入的是 ( 24 )。
main()
{
int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a,i;
for(i=0;i<10;i++,p++)
if ( ) *a=*p;
printf("%d",*a);
}
24 (A) p>a (B) *p>a[0] (C) *p>*a[0] (D) *p[0]>a[0]
10. 若在下面程序段中使指針變數p指向一個存儲整型數據的動態存儲單元,則在下劃線處應填入 ( 25 ) 。
int *p;
p= malloc(sizeof(int));
25 (A) int (B) int * (C) (* int) (D) (int *)

二、讀程序回答問題 ( 每個選擇3分,共45分 )
1. 讀程序寫出程序運行結果。
# include <stdio.h>
void fun(char *s,char t)
{
while(*s)
{ if(*s==t) *s=t-'a'+'A';
s++;
}
}
void main()
{
char s[100]="abcddfefdbd",c='d';
fun(s,c);
printf("%s\n",s);
}
程序運行後的輸出結果是( B )。
26 (A) ABCDDFEFDBD (B) abcDDfefDbD (C) abcAAfefAbA (D) Abcddfefdbd
2. 讀程序並回答問題。
# include <stdio.h>
void fun(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++)
{
t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;
}
}
void main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
int i,s=0;
fun(b,8);
for(i=6;i<10;i++) s+=b[i];
printf("%d\n",s);
}
(1)函數fun的功能是( A )。
27 (A) 將數組a的前n個元素逆置 (B) 對數組元素進行升序排列
(C) 交換數組第一個元素和最後一個元素 (D) 對數組元素進行降序排列
(2)程序的運行結果是( A )
28 (A) 34 (B) 30 (C) 22 (D) 10
3. 讀程序,回答問題
# include <iostream.h>
void main()
{
int a=0,x=0;
for(;!x&&a<10;a++)
{ a++;
x++;
}
cout<<a<<endl;
}
程序的運行結果為:( D )。
29 (A) 10 (B) 4 (C) 3 (D) 2
4. 讀程序回答問題。
# include <stdio.h>
void fun(char *str)
{
int i,j=0;
for(i=0;str[i]!='\0';i++)
if(str[i]!=' ') str[j++]=str[i];
s[j]='\0';
}
void main()
{
char str[80];
int n;
printf("Input a string:");
gets(str);
fun(str);
printf("%s\n",str);
}
程序運行時輸入字元串asd_ab_123(註:用「_」表示空格),則程序的運行結果為( A 30 )
30 (A) asdab123 (B) asd_ab123 (C) asdab_123 (D) asd
5. 讀程序,回答問題。
# include <stdio.h>
# include <conio.h>
struct mod
{int a,b,c;};
void main()
{ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};
int total;
total=st[0].a+st[1].b;
printf("total=%d\n",total);
getch();
}
程序運行輸出total=( B )。
31 (A)5 (B) 6 (C) 7 (D) 8
6. 有下列程序:
# include <stdio.h>
void main()
{
int x=10,y=5;
switch(x)
{ case 1: x++;
default: x+=y;
case 2: y--;
case 3: x--;
}
printf("x=%d,y=%d",x,y);
}
程序輸出結果為( A )。
(A) x=14,y=4 (B) x=15,y=4
(C) x=10,y=5 (D) x=15,y=5
7. 讀程序,回答問題。
# include <stdio.h>
int f(int m)
{
static int n=1;
m/=2;
m=m*2;
if(m)
{ n*=m;
return(f(m-2));
}
else return(n);
}
void main()
{
int a,i,j;
for(i=0;i<2;i++)
{
a=f(4+i);
printf("%d\n",a);
}
}
(1)程序第一次的輸出結果是( A )。
33 (A) 8 (B) 0 (C) 64 (D) 4
(2)程序第二次的輸出結果是( C )。
34 (A) 8 (B) 0 (C) 64 (D) 4
8. 有下列程序,若程序編譯連接後生成可執行文件CAD.EXE,則輸入以下命令行:
cad FILE1 FILE2<CR> (<CR>表示回車)
程序的運行結果是( D )。
# include <stdio.h>
void main(int argc,char *argv[])
{
int i;
printf("%d\n",argc);
for(i=0;i<=argc-1;i++)
printf("%s",argv[i]);
printf("\n");
}
35 (A) 2 (B) 3
Cadfile1file2 file1file2
(C) 2 (D)3
CAD.EXE FILE1 FILE2 CAD.EXEFILE1FILE2
9. 下面程序的功能是把316表示為兩個數的和,且這兩具加數分別能被13和11整除。程序while語句下劃線處應填入( D )。
# include <stdio.h>
void main()
{ int i=0,j,k;
do{
i++;
k=316-13*i;
}while ( );
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
36 (A) k/11 (B)k%11 (C) k (D) k%11==0
10. 讀程序並回答問題。
# include <stdio.h>
void main()
{
int 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;
printf("%d",x);
}
(1)程序執行完後x的值是( B )。
37 (A)1 (B) 2 (C) 3 (D) 6
(1)當d的值改為2時,程序執行完後x的值是( C )。
38 (A)1 (B) 2 (C) 3 (D) 6
11. 以下程序的運行結果為( C )。
# include <stdio.h>
void sub(int x,int y,int *z)
{ *z=y-x; }
void main()
{
int a=1,b=2,c=3;
sub(a,b,&a);
sub(b,a,&b);
sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}
39 (A) 1,1,0 (B) 1,2,3 (C) 1,-1,-2 (D) 1,2,1
12. 下面程序的輸出結果是( D )。
# include <stdio.h>
# include <string.h>
void main()
{ char *p1="abc",*p2="ABC",str[50]="xyz";
strcpy(str+3,p2);
strcat(str+2,p1);
printf("%s\n",str);
}
40 (A) xyzabcABC (B) xyzABabc (C) yzabcABC (D) xyzABCabc

注意:① 請把下面「程序填空」中各小題答案寫在主觀題答題紙上
② 每一個空只填一個語句或一個語句所缺的部分內容

三、程序填空 ( 每空2分,共30分 )
1. 函數fun的功能是:求出s所指字元串中指定字元的個數,並返回個數。例如,在main函數中,若輸入字元串abcdabacaa ,輸入指定字元a,則輸出結果為5,即字元串abcdabacaa中有5個字元a。請填空。
# include <stdio.h>
# define M 81
int fun(char *s,char c)
{
int i,cnt=0;
for(i=0;① ;i++)
if(*(s+i)==c)
cnt++;

}
void main()
{
char str[M],ch;
printf("\nPlease enter a string:");
gets(str);
printf("\nPlease enter a char:");
ch=getchar();
printf("\nThe number of the char is : %d\n", ③ );
}
2. 函數fun的功能是根據公式 計算級數前n項的和s,計算結果通過形參指針s傳回;n值大於等於0。請填空。
# include <stdio.h>
void fun(float *s,int n)
{
float t=0.0;
int i,k=-1;
for(i=0;i<=n;i++)
{
k=① *k;
t=t+k*1.0/② ;
}

}
void main()
{
int n;
float s;
printf("Input n:");
scanf("%d",&n);
fun(&s,n);
printf("s=%f\n",s);
}
3. 下列程序的功能是:求一個M*N二維數組每行元素的和,並將和依次放入一個一維數組中傳回主函數。例如,若有以下二維數組:
6 10 2 10 15
17 14 15 8 6
4 18 10 19 12
0 12 1 2 7
則輸出為:43 60 63 22。請填空。
# define M 4
# define N 5
# include <stdio.h>
fsum(int a[][N]),int b[])
{ int i,j;
for(i=0;i<M,i++)
① ;
for(i=0;i<M;i++)
for(j=0;j<N;j++)
② =a[i][j];
}
void main()
{
int x[M][N],y[M],i,j;
printf("The %d x %d Array :\n",M,N);
for(i=0;i<M;i++)
{ for(j=0;j<N;j++)
{ ③ =rand()%20;
printf("%6d",x[i][j]);
}
printf("\n");
}
fsum(x,y);
printf("The sum of each line:\n");
for(i=0;i<M;i++)
printf("%6d",y[i]);
printf("\n");
}
4. 下面的程序求ab.c文件中最長的行的字元數len及其行號line。請填空。
# include <stdio.h>
void main()
{
int line,i,j=0,len=0;
char c;
FILE *fp;
fp=fopen("ab.c","r");
rewind(fp);
while(fgetc(fp)!EOF)
{ i=1;
while(fgetc(fp)!='\n') ① ;
j++;
if(i>len) { len=i; ② ; }
}
printf("\n%d\t%d\n",len,line);
③ ;
}
5. 下面fun函數的功能是將形參x的值轉換成二進制數,所得二進制數按位放在一維數組中返回,二進制數的最低位放在下標為0的元素中,其他依此類推。請填空。
# include <stdio.h>
int fun(int x,int b[])
{ int k=0,r;
do
{ r=x%2;
b[ ① ]=r;
x/= ② ;
}while(x);
return ③ ;
}
void main()
{
int k,n,a[20];
printf("\nEnter n:");
scanf("%d",&n);
k=fun(n,a);
while(k>=0)
printf("%d",a[k--]);
}