国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C語言/C++練習(xí)題

這篇具有很好參考價(jià)值的文章主要介紹了C語言/C++練習(xí)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

C++練習(xí)題

1、計(jì)算某個(gè)月有多少天

題目:從鍵盤輸入年份和月份,輸出這個(gè)月的天數(shù)。
【樣例輸入】2023 1

【樣例輸出】31

【樣例輸入】2020 2

【樣例輸出】29
提示:當(dāng)輸入的月份為2月份時(shí),需要判斷該年年份是否為閏年。
判斷閏年的條件:年份為4的倍數(shù)并且不是100的倍數(shù),或者年份是400的倍數(shù)。

int main(){	
	int year,month,day=0;
	cout<<"請(qǐng)輸入年份和月份,以空格分隔:";
	cin>>year>>month;
	switch(month){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:day=31;break;
		case 4:
		case 6:
		case 9:
		case 11:day=30;break;
		case 2:
			if(year%4==0&&year%100!=0||year%400==0){
				day=29;
			}else{
				day=28;
			}
			break;
		default:cout<<"月份輸入有誤。";
	}
	if(day!=0){
		cout<<year<<"年"<<month<<"月有"<<day<<"天";
	}
}

?

2、輸出1-200之間的質(zhì)數(shù)。

在控制臺(tái)打印輸出1-200之間所有的質(zhì)數(shù),以空格分割。

提示:只有1和這個(gè)數(shù)本身能被它自己整除的數(shù)就是質(zhì)數(shù)。

int main(){
	bool flag; 
	for(int i=2;i<=200;i++){
		flag=false;
		for(int j=2;j<i;j++){
			if(i%j==0){
				flag=true;
				break;
			}
		}
		if(!flag){
			cout<<i<<" ";
		}
	} 
}

3、計(jì)算矩陣邊緣元素之和

輸入一個(gè)整數(shù)矩陣,計(jì)算位于矩陣邊緣的元素之和。所謂矩陣邊緣的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

輸入描述

第一行分別為矩陣的行數(shù)m和列數(shù)n(m<100,n<100),兩者之間以一個(gè)空格分開。
接下來輸入的m行數(shù)據(jù)中,每行包含n個(gè)整數(shù),整數(shù)之間以一個(gè)空格分開。

輸出描述

輸出對(duì)應(yīng)矩陣的邊緣元素和。

用例輸入 1

3 3
3 4 1
3 7 1
2 0 1

用例輸出 1

15
#include<iostream>
using namespace std;

int main()
{
    int n,m;
    cin>>m>>n;
    int arr[m][n];
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            cin>>arr[i][j];
        }
    }
	int sum=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<n;j++){
            if(i==0||i==m-1){
                sum+=arr[i][j];
            }else if(j==0||j==n-1){
                sum+=arr[i][j];
            }
        }
    }
    cout<<sum;
}

4、判斷數(shù)字位數(shù)

編寫一個(gè)函數(shù)get_length(…),計(jì)算輸入的正整數(shù)有多少位。

輸入描述

一個(gè)正整數(shù)(不超過10位)。

輸出描述

一個(gè)整數(shù),表示輸入的正整數(shù)的位數(shù)

用例輸入 1

123456

用例輸出 1

6
#include<iostream>
using namespace std;
int get_length(int n);
int main()
{
	int n;
	cin>>n;
	cout<<get_length(n);
 } 

int get_length(int n){
	//正整數(shù)的位數(shù)最少也有1位,所以初始值賦值為1
    int i=1;
	while(n/10!=0){
		n/=10;
		i++;
	}	
	return i;
}

5、整數(shù)重組

任意給定一個(gè)正整數(shù),把它重新組成一個(gè)最大值和一個(gè)最小值,求出兩數(shù)的差。例如:3721,可以重新組成的最大數(shù)為7321,組成的最小數(shù)為1237,兩數(shù)之差為7321-1237=6084。

輸入描述

x(整數(shù)1≤x≤100000)

輸出描述

最大值和最小值的差

用例輸入 1

3721

用例輸出 1

6084
#include<iostream>
using namespace std;

int X(int *a,int n){
	int i=0;
	while(n!=0){
		a[i]=n%10;
		n=n/10;
		i++;
	}
	//對(duì)數(shù)組元素升序排序 
	for(int k=0;k<i;k++){
		for(int j=0;j<k;j++){
			if(a[k]>a[j]){
				int t=a[k];
				a[k]=a[j];
				a[j]=t;
			}
		} 
	}
	//返回整數(shù)的位數(shù) 
	return i;
} 
int main()
{
	int n;
	cin>>n;
	int a[100]={};
	//統(tǒng)計(jì)輸入數(shù)字的位數(shù),并將所有數(shù)位上的數(shù)以升序存到數(shù)組a中 
	int count=X(a,n);
	int max=0,min=0;
	int x=1,y=1;
	//最小值則以數(shù)組元素從前往后結(jié)合,最大值則以數(shù)組元素從后往前結(jié)合 
	for(int i=0,j=count-1;i<count;i++,j--){
		//最小值從前往后遍歷,最大值從后往前遍歷 
		//從個(gè)位開始,依次用數(shù)位上的數(shù)字x1,x10,x100,...... 
		min+=a[i]*x;
		x*=10;
		max+=a[j]*y;
		y*=10;
	}
	cout<<max-min;
 } 

6、冰雹猜想

冰雹猜想:它首先流傳于美國,不久傳到歐洲,后來由一位叫角谷的日本人帶到亞洲。通俗地講,冰雹猜想的內(nèi)容是這樣的:任意給定一個(gè)自然數(shù)n,當(dāng)n是偶數(shù)時(shí),將它除以2,即將它變成n/2;當(dāng)n是奇數(shù)時(shí),就將它變成3n+1,……,若干步后,總會(huì)得到1。
在上述演變過程中,將每一次出現(xiàn)的數(shù)字排列起來,就會(huì)出現(xiàn)一個(gè)數(shù)字序列。
我們現(xiàn)在要解決的問題是:對(duì)于給定的n,求出數(shù)字序列中第一次出現(xiàn)1的位置。

輸入描述

輸入一個(gè)自然數(shù)n。輸出序列中第一次出現(xiàn)1的位置。

輸出描述

輸出序列中第一次出現(xiàn)1的位置。

用例輸入 1

6

用例輸出 1

9
#include<iostream>
using namespace std;

int main()
{
	long long n;
	cin>>n;
	long long index=0;
	while(true){
		index++;
		if(n==1){
			cout<<index;
			break;
		}
		if(n%2==0){
			n=n/2;
		}else{
			n=3*n+1;
		}
		
	}
 } 

7、長方形比大小

長方形家族有個(gè)很俗氣的傳統(tǒng):誰大誰優(yōu)先。 “比大小”的規(guī)則是:

  1. 面積大的優(yōu)先
  2. 面積相同時(shí),周長長的優(yōu)先

請(qǐng)將n個(gè)長方形按“比大小”的規(guī)則排序后,輸出每個(gè)長方形的序號(hào)。長方形的序號(hào)是1~n,和長方形的輸入順序一致。

輸入描述

第1行,輸入一個(gè)小于100的正整數(shù),表示長方形的個(gè)數(shù);
接下來的n行,每行輸入一個(gè)長方形的長和寬(都是正整數(shù)),中間用單個(gè)空格隔開。

輸出描述

輸出n個(gè)正方形的序號(hào)。每個(gè)長方形占一行。

用例輸入 1

5 
9 7
3 4
2 3
2 6
3 21

用例輸出 1

5
1
4
2
3

代碼:

#include <bits/stdc++.h>
using namespace std;
struct stu{
	int a;
	int b;
	int c;
};
stu s[100];
bool cmp(stu x,stu y){
    if(x.a*x.b==y.a*y.b){
        return x.a+x.b>y.a+y.b;
    }else{
        return x.a*x.b>y.a*y.b;
    }
}

int main(){
    int num;
    cin>>num;
    for(int i=0;i<num;i++){
        cin>>s[i].a>>s[i].b;
        s[i].c = i+1;
    }
    sort(s,s+num,cmp);
    for(int i=0;i<num;i++){
        cout<<s[i].c<<endl;
    }
    return 0;
}

8、生日排序

小童知道CSP興趣小組中每個(gè)同學(xué)的生日,想編程將小組成員按照年齡從大到小的順序排序。但是小童編程水平很菜,忙活了半天都沒有實(shí)現(xiàn)自己的想法。請(qǐng)身為編程小能手的你,幫他完成排序。

輸入描述

輸入共有 n+1 行,第 1 行為 CSP興趣小組總?cè)藬?shù) n;
第 2 行至第 n+1 行分別是每個(gè)人的姓名 s、出生年 y、月 m、日 d。
1<n<100。保證年月日實(shí)際存在,且年份在1990~2022范圍內(nèi)。包括1990和2022。

輸出描述

輸出共有 n 行,即 n 個(gè)生日從大到小同學(xué)的姓名。(如果有兩個(gè)同學(xué)生日相同,輸入靠后的同學(xué)先輸出)。

用例輸入 1

3
Yangchu 1992 4 23
Qiujingya 1993 10 13
Luowen 1991 8 1

用例輸出 1

Luowen
Yangchu
Qiujingya

代碼:

#include<bits/stdc++.h>
#include<string>
using namespace std;

struct stu{
    string name;
	int year;
    int month;
    int day;
};
stu s[100];
bool cmp(stu x,stu y){
    if(x.year!=y.year){
        return x.year<y.year;
    }else{
        if(x.month!=y.month){
        	return x.month<y.month;	
		}else{
			if(x.day!=y.day){
				return x.day<y.day;
			}else{
				return true;
			}
		}
	}
}

int main(){
    int num;
    cin>>num;
    for(int i=0;i<num;i++){
        cin>>s[i].name>>s[i].year>>s[i].month>>s[i].day;
    }
    sort(s,s+num,cmp);
    for(int i=0;i<num;i++){
        cout<<s[i].name<<endl;
    }
    return 0;
}

9、候選人投票

有3個(gè)候選人:姓氏分別是“l(fā)i”、“zhang”、“sun”。有n個(gè)選民,每個(gè)選民只能投票選擇一個(gè)候選人。輸入n個(gè)選民的選票,輸出3個(gè)候選人各自的得票結(jié)果。要求:使用結(jié)構(gòu)體解題。

輸入描述

第1行是一個(gè)正整數(shù)n。(10 ≤ n ≤ 100)
第2行是n個(gè)字符串。每個(gè)字符串都是一個(gè)候選人的姓氏。

輸出描述

共3行。按“l(fā)i”、“zhang”、“sun”的順序輸出3個(gè)候選人的得票情況,格式是“姓氏:得票數(shù)”。

用例輸入 1

10
zhang li sun sun li sun sun zhang zhang li

用例輸出 1

li:3
zhang:3
sun:4
#include<bits/stdc++.h>
using namespace std;

struct stu{
    char name[100];
    int num;
};
stu s[100];

int main(){
	strcpy(s[0].name,"li");
	s[0].num=0;
	strcpy(s[1].name, "zhang");
	s[1].num=0;
	strcpy(s[2].name, "sun");
	s[2].num=0;
	
    int n;
    cin>>n;
    string c[100];
    int i=0;
    //將n個(gè)選民的投票情況保存到數(shù)組中 
	while(cin >> c[i])
    {
    	i++;
    	if(cin.get()=='\n'){
    		break;
		}		
	}
	//遍歷數(shù)組,和結(jié)構(gòu)體數(shù)據(jù)比較,如果姓氏相同,則候選人票數(shù)增加 
    for(i=0;i<n;i++){
	   for(int j=0;j<3;j++){
			if(s[j].name==c[i]){
				s[j].num+=1;
				break;
			}
	   }
    }
    for(i=0;i<3;i++){
        cout<<s[i].name<<":"<<s[i].num<<endl;
    }
    return 0;
}

10、病人排隊(duì)

請(qǐng)編寫一個(gè)病人排隊(duì)看病的程序。
病人有登記序號(hào)、年齡和ID三個(gè)信息。ID是一個(gè)長度小于10的字符串,每個(gè)病人的ID各不相同且只含數(shù)字和字母。
排隊(duì)規(guī)則是:
1.老年人(年齡 ≥ 60歲)比非老年人優(yōu)先看病。
2.老年人按年齡從大到小的順序看病,年齡相同的按登記的先后順序排序。
3.非老年人按登記的先后順序看病。

輸入描述

第1行,輸入一個(gè)小于100的正整數(shù),表示病人的個(gè)數(shù);
后面按照病人登記的先后順序,每行輸入一個(gè)病人的ID和年齡,中間用單個(gè)空格隔開。
病人的登記序號(hào)是1~n,和病人的輸入順序一致。

輸出描述

按規(guī)則排序后的病人ID,每行一個(gè)。

用例輸入 1

5
021075 40
004003 15
010158 67
021033 75
102012 30

用例輸出 1文章來源地址http://www.zghlxwxcb.cn/news/detail-463963.html

021033
010158
021075
004003
102012
#include<iostream>
#include <bits/stdc++.h>
using namespace std;

struct s{
	char id[21];
	int age;
	int I;
};
s stu[100];
s old[100];
s young[100];
bool cmp_o(s x,s y){
    if(x.age==y.age){
        return x.I<y.I;
    }else{
        return x.age>y.age;
    }
}

bool cmp_y(s x,s y){
    return x.I<y.I;
}

int main()
{
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>stu[i].id>>stu[i].age;
		stu[i].I=i;
		cin.get();
	}
	
	int j=0,k=0;
	for(int i=0;i<n;i++){
		if(stu[i].age>=60){
			old[j++]=stu[i];
		}else{
			young[k++]=stu[i];
		}
	}
	//排序
	sort(old,old+j,cmp_o);
	sort(young,young+k,cmp_y);
	for(int i=0;i<j;i++){
		cout<<old[i].id<<endl;
	} 
	for(int i=0;i<=k;i++){
		cout<<young[i].id<<endl;
	} 
 } 

到了這里,關(guān)于C語言/C++練習(xí)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 嵌入式培訓(xùn)機(jī)構(gòu)四個(gè)月實(shí)訓(xùn)課程筆記(完整版)-C++和QT編程第二天-C++類與對(duì)象練習(xí)題(物聯(lián)技術(shù)666)

    網(wǎng)盤鏈接:https://pan.baidu.com/s/1TKdHdeuDI8XPaakepvSLZQ?pwd=1688? 提取碼:1688 設(shè)計(jì)一個(gè)學(xué)生類,包括學(xué)號(hào)、姓名、成績,并設(shè)計(jì)接口函數(shù)用來輸出這些學(xué)生數(shù)據(jù)并計(jì)算平均分。并編寫main函數(shù)進(jìn)行測(cè)試: 輸出如: 學(xué)號(hào) 姓名 成績 1 張XX 98 2 王XX 90 3 XXX 89 平均成績: XX //*******************

    2024年01月16日
    瀏覽(26)
  • JAVA面向?qū)ο缶毩?xí)題,課后編程題。題目為:公司員工分為5類,每類員工都有相應(yīng)的封裝類。

    某公司的員工分為5類,每類員工都有相應(yīng)的封裝類,這5個(gè)類的信息如下 (1)Employee:這是所有員工的父類。 ①屬性:員工的姓名、員工的生日月份。 )方法:getSalary(int?month)根據(jù)參數(shù)月份確定工資。如果該月員工過生日,則公司會(huì)額外發(fā)放100元。 (2)SalariedEmployee:Employee?

    2024年02月05日
    瀏覽(27)
  • C語言之練習(xí)題

    C語言之練習(xí)題

    歡迎來到我的: 世界 希望作者的文章對(duì)你有所幫助,有不足的地方還請(qǐng)指正,大家一起學(xué)習(xí)交流 ! 這期文章由:兩題問答題+四道編程題;小孩在文章中寫有詳細(xì)解題思路,感謝大家支持支持。 思路: 首先我們要知道 x=x(x-1) 的含義; 假設(shè)x=3;也就是 011 ; 而x-1=2;是 010 ;

    2024年02月10日
    瀏覽(40)
  • C 語言練習(xí)題更新

    目錄(先不要看答案,首先自己做才能更好的領(lǐng)悟,做不來沒關(guān)系) 題目一:有 1、2、3、4 四個(gè)數(shù)字,能組成多少個(gè)互不相同且無重復(fù)數(shù)字的三位數(shù)?都是多少? 程序分析:可填在百位、十位、個(gè)位的數(shù)字都是 1、2、3、4,組成所有的排列后再去掉不滿足條件的排列。 題目

    2024年02月14日
    瀏覽(26)
  • 習(xí)題練習(xí) C語言

    習(xí)題練習(xí) C語言

    首先我們要了解什么是offsetof宏: . 此具有函數(shù)形式的宏返回?cái)?shù)據(jù)結(jié)構(gòu)或聯(lián)合類型中成員成員的偏移值(以字節(jié)為單位)。 . 返回的值是size_t類型的無符號(hào)整數(shù)值,其字節(jié)數(shù)位于指定成員與其結(jié)構(gòu)開頭之間。 什么意思呢,可以看到下面這張圖片: 下面我們來看到這一習(xí)題:

    2024年02月14日
    瀏覽(24)
  • 習(xí)題練習(xí) C語言(暑期)

    習(xí)題練習(xí) C語言(暑期)

    今天為大家分享我暑假期間所練習(xí)的一些小題目! 相信大家看完之后都會(huì)有所提升的! 加油! 以下不正確的定義語句是( ) A: double x[5] = {2.0, 4.0, 6.0, 8.0, 10.0}; B: char c2[] = {‘x10’, ‘xa’, ‘8’}; C: char c1[] = {‘1’,‘2’,‘3’,‘4’,‘5’}; D: int y[5+3]={0, 1, 3, 5, 7, 9}; 題目解

    2024年02月10日
    瀏覽(31)
  • C語言習(xí)題練習(xí)

    C語言習(xí)題練習(xí)

    首先我們要了解什么是offsetof宏: . 此具有函數(shù)形式的宏返回?cái)?shù)據(jù)結(jié)構(gòu)或聯(lián)合類型中成員成員的偏移值(以字節(jié)為單位)。 . 返回的值是size_t類型的無符號(hào)整數(shù)值,其字節(jié)數(shù)位于指定成員與其結(jié)構(gòu)開頭之間。 什么意思呢,可以看到下面這張圖片: 下面我們來看到這一習(xí)題:

    2024年02月15日
    瀏覽(36)
  • C語言之?dāng)?shù)組練習(xí)題

    C語言之?dāng)?shù)組練習(xí)題

    第1關(guān):數(shù)組插入元素 300 任務(wù)要求 參考答案 評(píng)論106 任務(wù)描述 相關(guān)知識(shí) 數(shù)組 數(shù)組元素的表示方法 編程要求 測(cè)試說明 任務(wù)描述 本關(guān)需要你將一個(gè)數(shù)插入到一組已經(jīng)排好序的數(shù)組并輸出。 相關(guān)知識(shí) 數(shù)組在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干變量按有序的形式

    2024年02月05日
    瀏覽(25)
  • 【C語言】練習(xí)題整理:11

    今天是10道選擇題 下面代碼段的輸出結(jié)果是: -12 自右至左的結(jié)合方向稱為“右結(jié)合性”。最典型的右結(jié)合 性運(yùn)算符是賦值運(yùn)算符。 如x=y=z,由于“=”的右結(jié)合性,應(yīng)先執(zhí)行y=z,再執(zhí)行x=(y=z)運(yùn)算。 C語言運(yùn)算符中有不少為右結(jié)合性,應(yīng)注意區(qū)別,以避免理解錯(cuò)誤。 計(jì)算順序是

    2024年02月11日
    瀏覽(27)
  • C語言/C++練習(xí)題

    題目:從鍵盤輸入年份和月份,輸出這個(gè)月的天數(shù)。 【樣例輸入】2023 1 【樣例輸出】31 【樣例輸入】2020 2 【樣例輸出】29 提示:當(dāng)輸入的月份為2月份時(shí),需要判斷該年年份是否為閏年。 判斷閏年的條件:年份為4的倍數(shù)并且不是100的倍數(shù),或者年份是400的倍數(shù)。 ? 在控制

    2024年02月06日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包