欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

2021-2022CSUC語(yǔ)言期末考試二-創(chuàng)新互聯(lián)

1.格式轉(zhuǎn)換

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、開(kāi)魯網(wǎng)站維護(hù)、網(wǎng)站推廣。 問(wèn)題 A: 格式轉(zhuǎn)換(20分)

題目描述

老師知道小南對(duì)各個(gè)國(guó)家和地區(qū)的日期和時(shí)間表示格式頗有研究,于是給了小南一個(gè)任務(wù),將A地的時(shí)間點(diǎn)信息(日期表示格式為月/日/年,時(shí)間表示格式為24小時(shí)制0:0~23:59)轉(zhuǎn)換為B地的時(shí)間點(diǎn)信息(日期表示格式為年月日,時(shí)間表示格式為12小時(shí)制00:00~11:59AM, 00:00~11:59PM)。聰明的你能幫他編寫(xiě)一個(gè)程序自動(dòng)轉(zhuǎn)換嗎?

輸入

多組樣例。每行輸入一個(gè)樣例包括一串整數(shù)數(shù)據(jù),格式為h:p,m/d/y,其中0≤h≤23,0≤m≤59,1≤m≤12,1≤d≤31,1900≤y≤2200)。

輸出

對(duì)于每一個(gè)輸入,按照要求輸出轉(zhuǎn)換后的結(jié)果。每個(gè)輸出占一行。

樣例輸入?Copy

23:11,2/17/2011
6:6,10/1/2021
12:0,1/2/2022

樣例輸出?Copy

20110217,11:11PM
20211001,06:06AM
20220102,00:00PM

#includeint main(void)
{
    int h, p, m, d, y;
    while (~scanf("%d:%d,%d/%d/%d", &h, &p, &m, &d, &y))
    {
        printf("%04d%02d%02d,", y, m, d);
        if (h >= 12)
            printf("%02d:%02dPM\n", (h == 12) ? 0 : h-12, p);
        else
            printf("%02d:%02dAM\n", h, p);
    }
    return 0;
}

2.描繪閃電

問(wèn)題 B: 描繪閃電(20分)

題目描述

你見(jiàn)過(guò)閃電嗎?閃電經(jīng)常以耀眼的姿勢(shì)一閃而過(guò)。夜里,小南走在回宿舍路上,本是寧?kù)o的夜色,猛地一道閃電,閃耀而過(guò)?;氐剿奚?,小南突然很想用代碼記下閃電的模樣,聰明的你能幫幫他嗎?

輸入

多組樣例。每行一個(gè)樣例包含一個(gè)正整數(shù)?n,表示閃電的大?。?<n≤100)。

輸出

對(duì)于每一個(gè)輸入的n,輸出對(duì)應(yīng)一個(gè)大小的閃電,閃電由*組成,兩個(gè)*之間沒(méi)有空格。每個(gè)輸出占一行或者多行,并且每一個(gè)閃電后有一行空行。具體輸出格式請(qǐng)參考樣例。

樣例輸入?Copy

1
2
3

樣例輸出?Copy

* 
**
* 

  *  
 *  
***
 *  
*  

   *   
  *   
 *   
****
  *   
 *   
*
#includeint main(void)
{
    int n;
    while (~scanf("%d", &n))
    {
        for (int i = 0; i< n; i++)
        {
            for (int j = 1; j<= n - i; j++)
            {
                printf(" ");
            }
            printf("*");
            printf("\n");
        }//打印第一段

        for (int i = 1; i<= n + 1; i++)
            printf("*");
        printf("\n");//打印第二段

        for (int i = 0; i< n; i++)
        {
            for (int j = n - i-1; j >= 1; j--)
                printf(" ");
            printf("*\n");
        }//打印第三段

        printf("\n");
    }
    return 0;
}

拆分成三段來(lái)打印

3.密碼設(shè)置

問(wèn)題 C: 密碼設(shè)置(20分)

題目描述

小南有個(gè)密碼本,詳細(xì)記錄著她在每個(gè)網(wǎng)站上的密碼,但是有的密碼設(shè)置可能存在安全問(wèn)題,她想請(qǐng)聰明的你幫她看看密碼設(shè)置是否正確。安全密碼的判斷有以下幾個(gè)規(guī)則:

(1)密碼長(zhǎng)度必須≥8

(2)包含數(shù)字

(3)包含大寫(xiě)字母

(4)包含小寫(xiě)字母

(5)至少包含6個(gè)特殊字符(! @ # $ * ~)中的一個(gè)

以上規(guī)則,除(1)必須滿(mǎn)足外,其他四個(gè)條件至少滿(mǎn)足其中三個(gè)才是安全的密碼。

輸入

多組樣例。每行一個(gè)樣例,輸入一個(gè)字符串S代表密碼,字符串S的長(zhǎng)度len(S)滿(mǎn)足:1≤len(S)≤30,且只包含密碼設(shè)置要求的數(shù)字、字母和特殊字符,無(wú)其他非法字符。

輸出

對(duì)于每一組樣例,輸出一個(gè)判斷結(jié)果。如果滿(mǎn)足安全密碼的設(shè)置要求則輸出yes,不滿(mǎn)足則輸出no。每個(gè)輸出占一行。

樣例輸入?Copy

ttttttttt
123Aa~
123456QqWe
aQwe!1234
123$#abc

樣例輸出?Copy

no
no
yes
yes
yes

#include#includeint main(void)
{
	char s[35];
	while (~scanf("%s", s))
	{
		int len = strlen(s), sz = 0, xx = 0, dx = 0, ts = 0, flag = 0,flag2=1;
		if (len< 8)
		{
			printf("no\n");
			continue;
		}
		else//首先需要長(zhǎng)度大于等于8,才能繼續(xù)判斷具體字符
		{
			for (int i = 0; i< len; i++)
			{
				int e = 1;//e記錄是否有題目范圍外的其他字符
					if (s[i] >= '0' && s[i]<= '9')//判斷數(shù)字
						sz = 1,e=0;
					if (s[i] >= 'a' && s[i]<= 'z')//判斷小寫(xiě)字母
						xx = 1,e=0;
					if (s[i] >= 'A' && s[i]<= 'Z')//判斷大寫(xiě)字母
						dx = 1,e = 0;
					if (s[i] == '!' || s[i] == '@' || s[i] == '#' || s[i] == '$' || s[i] == '*' || s[i] == '~')//判斷特殊字符
						ts = 1, e = 0;
				if (e == 1)
				{
					flag2 = 0;
					printf("no\n");
					break;
				}
			}
			if (flag2)
			{
				flag = sz + xx + dx + ts;
				if (flag >= 3)//判斷是否滿(mǎn)足要求中至少三項(xiàng)
					printf("yes\n");
				else
					printf("no\n");
			}
		}
	}
	return 0;
}

4.偽素?cái)?shù)列

問(wèn)題 D: 偽素?cái)?shù)列(20分)

題目描述

如果一個(gè)正整數(shù)A是素?cái)?shù),或者A的每一位數(shù)字都是素?cái)?shù),我們稱(chēng)A為偽素?cái)?shù)。例如,23是素?cái)?shù),235的每一位數(shù)字都是素?cái)?shù),所以23和235都是偽素?cái)?shù),而135不是素?cái)?shù),其中的數(shù)字1不是素?cái)?shù),所以135不是偽素?cái)?shù)。老師給了小南一個(gè)任務(wù),讓他在一個(gè)稱(chēng)作偽素?cái)?shù)列的集合An={2,3,5,7,11,13,17,19,22,23,25,…}中快速找到第k個(gè)偽素?cái)?shù),聰明的你能幫他完成任務(wù)嗎?

輸入

多組樣例。每行輸入一個(gè)樣例包括一個(gè)正整數(shù)k(1≤k≤5000)。

輸出

對(duì)每一個(gè)輸入的k,輸出一個(gè)正整數(shù)x,表示數(shù)列An中的第k項(xiàng)的值,其值范圍不會(huì)超過(guò)int型。每個(gè)輸出占一行。

樣例輸入?Copy

1
5
10

樣例輸出?Copy

2
11
23
#includeint isprime(int x)
{
	if (x<= 1)
		return 0;
	else
	{
		for (int i = 2; i * i<= x; i++)
		{
			if (x % i == 0)
				return 0;
		}
		return 1;
	}
}
int main(void)
{
	int a[5005] = { 0 };
	int cnt = 0;
	for (int i = 2; cnt<= 5000; i++)
	{
		if (isprime(i))
			a[cnt++] = i;
		else
		{
			int flag = 0;
			int j = i;
			while (j>0&&isprime(j%10))
			{
				j = j / 10;
			}
			if (j == 0)
				a[cnt++] = i;
		}
	}
	
	int x;
	while (~scanf("%d", &x))
	{
		printf("%d\n", a[x - 1]);
	}
	return 0;
}

注意應(yīng)盡量使代碼簡(jiǎn)潔,不然會(huì)增加時(shí)間復(fù)雜度。

(我寫(xiě)這類(lèi)題目經(jīng)常時(shí)間超限...)

5.實(shí)數(shù)相加

問(wèn)題 E: 實(shí)數(shù)相加(10分)

題目描述

C語(yǔ)言就要期末考試了,經(jīng)過(guò)一學(xué)期的學(xué)習(xí),小南學(xué)會(huì)了分?jǐn)?shù)相加、分?jǐn)?shù)相減、大整數(shù)相加,可就是沒(méi)有嘗試過(guò)將兩個(gè)大達(dá)400位的實(shí)數(shù)相加。在調(diào)試過(guò)程中,小南遇到了很多問(wèn)題,一直解決不了。你能幫他編寫(xiě)一個(gè)程序?qū)崿F(xiàn)兩個(gè)實(shí)數(shù)相加嗎?

輸入

多組樣例。每行輸入一個(gè)樣例包括兩個(gè)用空格分開(kāi)的實(shí)數(shù)xy,其中xy是長(zhǎng)度不大于400位的非負(fù)實(shí)數(shù)。注意,非負(fù)實(shí)數(shù)中也可能包括非負(fù)整數(shù),正整數(shù)會(huì)省略小數(shù)點(diǎn)和后面的0,只包括整數(shù)部分。

輸出

對(duì)于每一行輸入,輸出兩個(gè)實(shí)數(shù)xy相加的結(jié)果。輸出結(jié)果中整數(shù)部分的前面和小數(shù)部分的末尾不輸出多余的0;如果是整數(shù),不輸出小數(shù)點(diǎn)和小數(shù)點(diǎn)后面的0。每個(gè)輸出占一行。

樣例輸入?Copy

1.1 2.9
1.1111111111 2.3444323343 
1 1.1
1.1111 1.1889

樣例輸出?Copy

4
3.4555434454 
2.1
2.3

本題思路:將兩個(gè)實(shí)數(shù)拆分成整數(shù)部分和小數(shù)部分分別相加

這題有很多易錯(cuò)點(diǎn)(也可能是我的代碼比較繁瑣),具體的坑都在下面的代碼中有標(biāo)明。

#include#includeint main(void)
{
    char x[405] = { 0 }, y[405] = { 0 };
    while (~scanf("%s %s", x, y))//用字符串的方式讀入兩個(gè)實(shí)數(shù)X和Y
    {
        int l1 = strlen(x), l2 = strlen(y);
        char x1[405] = { 0 }, x2[405] = { 0 };//x1是第一個(gè)數(shù)的整數(shù)部分,x2是第一個(gè)數(shù)的小數(shù)部分
        int i=l1, j=l2;//注意i與j的賦值不能為0,若找不到小數(shù)點(diǎn)那么整數(shù)部分長(zhǎng)度就是l1與l2
        for (int k = 0; k< l1; k++)
        {
            if (x[k] == '.')
            {
                i = k;//找到小數(shù)點(diǎn),就是整數(shù)和小數(shù)部分分割的位置
            }
        }
        for (int k = 0; k< i; k++)
        {
            x1[k] = x[k];
        }
        for (int k = i + 1; k< l1; k++)
        {
            x2[k-i-1] = x[k];
        }//分割x

        char y1[405] = { 0 }, y2[405] = { 0 };
        for (int k = 0; k< l2; k++)
        {
            if (y[k] == '.')
            {
                j = k;
            }
        }
        for (int k = 0; k< j; k++)
        {
            y1[k] = y[k];
        }
        for (int k = j + 1; k< l2; k++)
        {
            y2[k - j - 1] = y[k];
        }//分割y

        int r1[405] = { 0 }, t=0;//r1為儲(chǔ)存整數(shù)最終結(jié)果的數(shù)組
        int p = i - 1, q = j - 1;
        

        int r2[405] = { 0 }, t2 = 0;//r2為儲(chǔ)存小數(shù)最終結(jié)果的數(shù)組
//因?yàn)樽罱K小數(shù)部分相加后可能會(huì)向整數(shù)部分進(jìn)位,所以先計(jì)算小數(shù)部分
        int len;
        if (l1 - i >l2 - j)//len的長(zhǎng)度應(yīng)為兩者中較長(zhǎng)者
            len = l1 - 1 - i-1;
        else
            len = l2 - 1 - j-1;
        while (len >= 0)
        {
            int g=x2[len], r=y2[len];

//因?yàn)閿?shù)組中原本儲(chǔ)存的是數(shù)字0,所以此處應(yīng)將其轉(zhuǎn)換為字符0才能進(jìn)行下面的轉(zhuǎn)換
            if (x2[len] == 0)
                g = '0';
            if (y2[len] == 0)
                r = '0';

            r2[t2] = r2[t2]+g - '0' + r - '0';
            if (r2[t2] >= 10)
            {
                r2[t2] %= 10;
                r2[t2 + 1]++;
            }
            t2++,len--;
        }

        if (r2[t2] != 0)//向整數(shù)部分進(jìn)位
        {
            r1[0] = r1[0] + 1;
        }
        
        while (p >= 0 && q >= 0)
        {
            r1[t] = r1[t] + x1[p] - '0' + y1[q] - '0';
            if (r1[t] >= 10)
            {
                r1[t] = r1[t] % 10;
                r1[t + 1]++;
            }
            t++, p--, q--;
        }

//計(jì)算多出來(lái)的部分
        while (p >= 0)
        {
            r1[t] = r1[t] + x1[p] - '0';
            t++, p--;
        }
        while (q >= 0)
        {
            r1[t] = r1[t] + y1[q] - '0';
            t++, q--;
        }//至此整數(shù)部分加好
        
        if (r1[t] == 0)//判斷整數(shù)部分的長(zhǎng)度
            t = t - 1;

        for (t; t >= 0; t--)
            printf("%d", r1[t]);//輸出整數(shù)部分
        
        int fir = 0;
        while (r2[fir] == 0&&fir= fir; j--)
                printf("%d", r2[j]);
        }
        printf("\n");
    }
    return 0;
}

6.諜影尋蹤

問(wèn)題 F: 諜影尋蹤(10分)

2020年10月,國(guó)家安全機(jī)關(guān)組織實(shí)施“迅雷-2020”專(zhuān)項(xiàng)行動(dòng),破獲數(shù)百起間諜竊密事件,有效維護(hù)了國(guó)家安全和利益。在行動(dòng)中,我方安全機(jī)關(guān)破獲了一個(gè)情報(bào)組織,他們是單線聯(lián)系的。我方給情報(bào)組織中的每個(gè)人員一個(gè)唯一的代號(hào)。同時(shí),情報(bào)人員為了隱秘,可能會(huì)有不同的姓名編號(hào)(設(shè)定最多兩個(gè)姓名編號(hào))。我方順藤摸瓜,分別截獲并返回組織信息。請(qǐng)你幫忙匯總并恢復(fù)這條組織鏈條。

輸入

多組樣例。每組樣例包括多行輸入,第一行包含一個(gè)正整數(shù)n(0<n≤1000),表示截獲到的情報(bào)數(shù)。接下來(lái)的n行輸入形式為A->B,表示A單向聯(lián)系B,B是A的下線。A和B表示兩名組織人員的信息,包括代號(hào)x和姓名編號(hào)y,用逗號(hào)“,”分開(kāi)。代號(hào)x和姓名編號(hào)y為整數(shù),滿(mǎn)足1≤x,y≤999999。除了第一行,A或B的代號(hào)信息在之前的行中出現(xiàn)過(guò)。

輸出

對(duì)于每一組樣例,按照順序在一行中輸出該組織的所有成員的信息,用“->”間隔。每個(gè)輸出占一行。如果有一個(gè)代號(hào)有兩個(gè)姓名編號(hào),則認(rèn)為是一個(gè)成員,輸出代號(hào)和對(duì)應(yīng)的兩個(gè)姓名編號(hào),用“#”分開(kāi)。如有兩個(gè)信息1,2345和1,6666,輸出時(shí)對(duì)應(yīng)一個(gè)成員信息1,2345#6666,兩個(gè)姓名編號(hào)先輸入的在前面。

樣例輸入?Copy

3
1,1234->5,2236
5,2236->3,7177 
7,3234->1,1234
4
1,258->10,111111
5,4353->1,36900 
7,22->5,4353
10,159->20,220102
2
1,111->2,222
1,101->2,202

樣例輸出?Copy

7,3234->1,1234->5,2236->3,7177 
7,22->5,4353->1,258#36900->10,111111#159->20,220102
1,111#101->2,222#202

本題思路:指針的基本操作(前插、后插)+結(jié)構(gòu)體

當(dāng)時(shí)寫(xiě)這題的時(shí)候沒(méi)有注意到可能兩個(gè)人都是曾經(jīng)出現(xiàn)過(guò)的,所以后面的判斷重合部分又加了che指針檢查是否兩者都是出現(xiàn)過(guò)的,幸好最后沒(méi)有時(shí)間超限,不知道能不能有大佬提供更簡(jiǎn)單的解法。

#include#include#includeint main(void)
{
	int n;
	while (~scanf("%d", &n))
	{
		struct node
		{
			int num;
			int cnt = 1;
			int n1;
			int n2;
			struct node* next;
		};

		struct node* head = NULL;
		struct node* A = (struct node*)malloc(sizeof(struct node));
		struct node* B = (struct node*)malloc(sizeof(struct node));
		scanf("%d,%d->%d,%d", &(A->num), &(A->n1), &(B->num), &(B->n1));
		B->next = head;
		A->next = B;
		head = A;
		for (int i = 1; i<= n - 1; i++)
		{
			A = (struct node*)malloc(sizeof(struct node));
			B = (struct node*)malloc(sizeof(struct node));
			scanf("%d,%d->%d,%d", &(A->num), &(A->n1), &(B->num), &(B->n1));
			B->next = NULL;
			A->next = B;
			struct node * cur = head,*pre=NULL;
			while ((cur->num) != A->num && (cur->num) != B->num)
				pre = cur, cur = cur->next;
			if (cur->num == A->num)
			{
				int flag = 1;
				struct node* che = head;
				for (; che->next != NULL; che = che->next)
				{
					
					if (che->num == B->num)
					{
						
						flag = 0;
						break;
					}
				}
				if (che->num == B->num)
				{

					flag = 0;
					
				}
				if (flag)
				{
					B->next = cur->next;
					cur->next = B;
				}
				else
				{
					if (che->n1 != B->n1)
					{
						che->cnt = 2;
						che->n2 = B->n1;
					}
				}
				if (cur->n1 != A->n1)
				{
					cur->cnt = 2;
					cur->n2 = A->n1;
				}
			}
			if (cur->num == B->num)
			{
				int flag = 1;
				struct node* che = head;
				for (; che->next != NULL; che = che->next)
				{
					if (che->num == A->num)
					{
						flag = 0;
						break;
					}
				}
				if (che->num == A->num)
				{
					flag = 0;
				}
				if (flag)
				{
					if (cur == head)
					{
						A->next = cur;
						head = A;
					}
					else
					{
						pre->next = A;
						A->next = cur;
					}
				}
				else
				{
					if (che->n1 != A->n1)
					{
						che->cnt = 2;
						che->n2 = A->n1;
					}
				}
				if (cur->n1 != B->n1)
				{
					cur->cnt = 2;
					cur->n2 = B->n1;
				}
			}
		}
		struct node* p = head;
		while (p->next != NULL)
		{
			if (p->cnt == 2)
			{
				printf("%d,%d#%d->", p->num, p->n1, p->n2);
			}
			else
			{
				printf("%d,%d->", p->num, p->n1);
			}
			p = p->next;
		}
		if (p->cnt == 2)
		{
			printf("%d,%d#%d", p->num, p->n1, p->n2);
		}
		else
		{
			printf("%d,%d", p->num, p->n1);
		}
		printf("\n");
	}
	return 0;
}

以上僅個(gè)人的一點(diǎn)淺薄的看法,這是一學(xué)期來(lái)第一次考試滿(mǎn)分,希望能對(duì)大家有幫助。如果有更好的解法,歡迎批評(píng)指正。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)站標(biāo)題:2021-2022CSUC語(yǔ)言期末考試二-創(chuàng)新互聯(lián)
瀏覽地址:http://chinadenli.net/article38/ddihpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站營(yíng)銷(xiāo)、品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、App開(kāi)發(fā)、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)