目錄
選擇題:
題一:
題二:
題三:
題四:
題五:
編程題:
題一:記負(fù)均正
思路一:
題二:旋轉(zhuǎn)數(shù)組的最小數(shù)字
思路一:
選擇題:
題一:
1、已知函數(shù)的原型是: int fun(char b[10], int *a); ,設(shè)定義: char c[10];int d; ,正確的調(diào)用語(yǔ)句是( )
A: fun(c,&d);? ??B: fun(c,d);? ? C: fun(&c,&d);? ? D: fun(&c,d);
題二:
2、請(qǐng)問(wèn)下列表達(dá)式哪些會(huì)被編譯器禁止【多選】( )
int a = 248, b = 4;
int const *c = 21;
const int *d = &a;
int *const e = &b;
int const * const f = &a;
A: *c = 32;? ? B: *d = 43? ? C: e=&a? ? D: f=0x321f
題三:
3、以下程序的輸出結(jié)果為( )
#include <stdio.h>
int i;
void prt()
{
????????for (i = 5; i < 8; i++)
????????printf("%c", '*');
????????printf("\t");
}int main()
{
????????for (i = 5; i <= 8; i++)
????????prt();
????????return 0;
}
A: ***? ??B: *** *** *** ***? ? C: *** ***? ? D: * * *
題四:
4、下面代碼段的輸出是( )
#include <stdio.h>
int i;
void prt()
{
????????for (i = 5; i < 8; i++)
????????printf("%c", '*');
????????printf("\t");
}int main()
{
????????for (i = 5; i <= 8; i++)
????????prt();
????????return 0;
}
?
A: -6? ? B: 12? ? C: 0? ??D: -12
題五:
5、下列不能實(shí)現(xiàn)死循環(huán)的是()
A:while(1){}? ? ? ? ?B:for(;1;){}? ?
C:do{}while(1);? ??D:for(;0;){}
編程題:
題一:記負(fù)均正
記負(fù)均正_牛客題霸_??途W(wǎng) (nowcoder.com)
示例1
輸入:
11 1 2 3 4 5 6 7 8 9 0 -1輸出:
1 5.0
思路一:
? ? ? ? 本題主要難點(diǎn)在于:nan(ind)-----得到不確定的一個(gè)數(shù)字;其余的就是輸入,判斷,記錄。
? ? ? ? num/counint > 0 ?num / counint:0 ?解決無(wú)法得到不確定的一個(gè)數(shù)字
#include <stdio.h>
int main()
{
int n = 0;
int arr[2000] = {0};
while (scanf("%d", &n) != EOF)
{
int i = 0;
int count = 0;
int counint = 0;
float num = 0;
//循環(huán)判斷是否正負(fù)
for (i = 0; i < n; i++)
{
scanf("%d", arr + i);
if (arr[i] < 0) {
count++;
}
if (arr[i] > 0) {
num += arr[i];
counint++;
}
}
//nan(ind)
//num/counint > 0 ?num / counint:0 解決無(wú)法得到不確定的一個(gè)數(shù)字
printf("%d %0.1f", count, num/counint > 0 ?num / counint:0);
}
return 0;
}
題二:旋轉(zhuǎn)數(shù)組的最小數(shù)字
旋轉(zhuǎn)數(shù)組的最小數(shù)字_牛客題霸_牛客網(wǎng) (nowcoder.com)
示例1
輸入:
[3,4,5,1,2]返回值:
1
思路一:
? ? ? ? left記錄開(kāi)頭,right記錄結(jié)尾,mid記錄中間節(jié)點(diǎn),情況一:右邊大于中間,說(shuō)明最小值在左邊;右邊小于中間,說(shuō)明最小值在右邊;情況二:考慮有相同的數(shù),此時(shí)結(jié)尾-1。最后將left節(jié)點(diǎn)值輸出即最小值。
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-709064.html
int minNumberInRotateArray(int* nums, int numsLen )
{
//防止nums為NULL
if(nums == NULL)
{
return 0;
}
int left = 0;
int right = numsLen -1;
//二分查找思路
while(left < right)
{
int mid = (left + right)/2;
//如果右邊大于中間,最小值在左邊
if(nums[mid] < nums[right])
{
right = mid;
}
//如果右邊小于中間,最小值在右邊
else if(nums[mid] > nums[right])
{
left = mid+1;
}
//如果右邊等于中間,退一個(gè)單位
else
{
right = right-1;
}
}
return nums[left];
}
本人實(shí)力有限可能對(duì)一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評(píng)論區(qū)指出錯(cuò)誤,望海涵!
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-709064.html
到了這里,關(guān)于C語(yǔ)言:選擇+編程(每日一練Day3)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!