目錄
選擇題:
題一:
題二:
題三:
題四:
題五:
編程題:
題一:統(tǒng)計(jì)每個(gè)月兔子的總數(shù)
思路一:
題二:數(shù)列的和
思路一:
本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵!
感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!
選擇題:
題一:
1、如果 x=2014 ,下面函數(shù)的返回值是( )
int fun(unsigned int x)
{
????????int n = 0;
????????while(x + 1)
????????{
????????????????n++;
????????????????x = x | (x + 1);
????????}????????return n;
}
A: 20? ? B: 21? ? C: 23? ? D:?25
答案解析:
????????這個(gè)作用是對(duì)整型中0的個(gè)數(shù)進(jìn)行統(tǒng)計(jì),x=x|(x+1);的作用是每次循環(huán)把x的二進(jìn)制中從右往左數(shù)的最后一位0變成1,直道變成全1的時(shí)候x+1就溢出為全0,循環(huán)結(jié)束。2014的二進(jìn)制是0000 0000 000 0000 0000 0111 1101 1110,所以結(jié)果是23。
題二:
2、下列語句定義 x 為指向 int 類型變量 a 的指針,其中哪一個(gè)是正確的( )
A: int a , *x = a;? ? ? ?? B: int a , *x = &a;
C: int *x = &a , a;? ? ? D: int a , x = a;
答案解析:
????????A選項(xiàng)的x是指針,賦值時(shí)使用a不合適,C選項(xiàng)在賦值時(shí)a變量還沒定義,D選項(xiàng)中的x不是指針。
題三:
3、下面有關(guān)空指針和未初始化指針,說法錯(cuò)誤的是( )
A: 對(duì)0x0這個(gè)地址取值是非法的
B: 空指針可以確保不指向任何對(duì)象或函數(shù); 而未初始化指針則可能指向任何地方
C: 空指針與任何對(duì)象或函數(shù)的指針值都不相等
D: malloc在其內(nèi)存分配失敗時(shí)返回的是一個(gè)未初始化的指針
答案解析:
????????malloc函數(shù)在內(nèi)存分配失敗時(shí)返回NULL,其余選項(xiàng)都正確。
題四:
4、若有定義 int a[8]; ,則以下表達(dá)式中不能代表數(shù)組元素 a[1] 的地址的是( )
A: &a[0]+1? ? B: &a[1]? ? C: &a[0]++? ? D: a+1
答案解析:
????????D選項(xiàng)a計(jì)算時(shí)是首元素地址,再加1,就是a[1]的地址,AB明顯對(duì),C選項(xiàng)a[0]先和++結(jié)合,形成一個(gè)表達(dá)式,不能對(duì)表達(dá)式取地址,會(huì)報(bào)錯(cuò)。
題五:
5、以下選項(xiàng)中,對(duì)基本類型相同的兩個(gè)指針變量不能進(jìn)行運(yùn)算的運(yùn)算符是( )
A: +? ? B: -? ? C: =? ? D: ==
答案解析:
????????A錯(cuò)誤,因?yàn)閮蓚€(gè)地址相加無意義也可能越界,所以規(guī)定不允許指針相加。B選項(xiàng),可以求出兩個(gè)數(shù)據(jù)元素儲(chǔ)存位置之間的相隔同數(shù)據(jù)類型的元素個(gè)數(shù),C選項(xiàng),賦值,沒問題,D選項(xiàng),判斷兩指針是否相同。
編程題:
題一:統(tǒng)計(jì)每個(gè)月兔子的總數(shù)
?統(tǒng)計(jì)每個(gè)月兔子的總數(shù)_??皖}霸_牛客網(wǎng) (nowcoder.com)
示例1
????????輸入:
????????3????????輸出:
????????2
思路一:
根據(jù)分析每個(gè)月兔子的數(shù)量,實(shí)際為斐波那契數(shù)列,前2個(gè)元素為1,從第3個(gè)元素開始,為前兩個(gè)元素的和。一月:1,二月:1,三月:2,四月:3,五月:5? ······
? ? ? ? 第一步:定義一個(gè)題目要求的數(shù)組arr[31],同時(shí)將下標(biāo)為“1”和“2”賦值為“1”;
? ? ? ? 第二步:斐波那契數(shù):循環(huán)依次將前兩位的值加起來賦值給“i”位;
????????第三步:當(dāng)用戶需要知道幾月份兔子的數(shù)量,就打印下標(biāo)為幾的值。
#include <stdio.h>
//斐波那契數(shù)計(jì)算:1 1 2 3 5 8
int main()
{
//滿足題目月份
int arr[31];
//前兩項(xiàng)為1
arr[1] = 1;
arr[2] = 1;
//需要求的月份
int month = 0;
//將題目需要求的范圍的兔子只數(shù)計(jì)算
for(int i = 3; i <= 31;i++)
{
arr[i] = arr[i-1] + arr[i-2];
}
//需要的是幾月的只數(shù)
scanf("%d", &month);
//打印需要月份的只數(shù)
printf("%d",arr[month]);
return 0;
}
題二:數(shù)列的和
數(shù)列的和_??皖}霸_??途W(wǎng) (nowcoder.com)
示例1
????????輸入:
????????81 4 ????????2 2????????輸出:
????????94.73 ????????3.41
思路一:
? ? ? ? 第一步:定義足夠大的數(shù)組arr,以及需要接收輸入值的m、n,求和數(shù)sum;
? ? ? ? 第二步:只要n、m都有輸入,就開始判斷:先將n給到和中,再將需要開平方的數(shù),開平方到下一個(gè)下標(biāo),并加到sum中;
????????第三步:最后打印sum保留兩位小數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-709688.html
#include <stdio.h>
#include <math.h>
int main()
{
int n = 0;
int m = 0;
//求和
double sum = 0;
//足夠大大的數(shù)組
double arr[10000] = { 0 };
//同時(shí)滿足n和m都有輸入
while(scanf("%d%d", &n, &m) == 2)
{
arr[0] = n;
//先將n給到和中
sum = arr[0];
//將需要開平方的數(shù),開平方到下一個(gè)下標(biāo),并加到sum中
for (int i = 1; i < m; i++)
{
arr[i] = sqrt(arr[i - 1]);
sum += arr[i];
}
//打印兩位小數(shù)
printf("%.2f\n", sum);
}
return 0;
}
本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵!
感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!?感謝大佬們的一鍵三連!
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-709688.html
到了這里,關(guān)于C語言:選擇+編程(每日一練Day13)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!