目錄
?選擇題:
題一:
題二:
題三:?
題四:?
題五:
編程題:
題一:打印1到最大的n位數
示例1
思路一:
題二:計算日期到天數轉換
示例1
?思路一:
本人實力有限可能對一些地方解釋和理解的不夠清晰,可以自己嘗試讀代碼,或者評論區指出錯誤,望海涵!
?選擇題:
題一:
1、執行下面程序,正確的輸出是( )
int x=5,y=7;
void swap()
{
????????int z;
????????z=x;
????????x=y;
????????y=z;
}int main()
{
????????int x=3,y=8;
????????swap();
????????printf("%d,%d\n",x, y);
????????return 0;
}
?A: 5,7 ????????B: 7,5 ????????C: 3,8 ????????D: 8,3
題二:
2、 以下不正確的定義語句是( )
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};
題三:?
3、test.c 文件中包括如下語句,文件中定義的四個變量中,是指針類型的變量為【多選】( )?
#define INT_PTR int*
typedef int* int_ptr;
INT_PTR a, b;
int_ptr c, d;
?A: a???????? B: b ????????C: c ????????D: d
題四:?
4、 若給定條件表達式 (M)?(a++):(a--) ,則其中表達式 M ( )
A: 和(M==0)等價???????? B: 和(M==1)等價C: 和(M!=0)等價? ? ? ? ? D: 和(M!=1)等價
題五:
5、有如下定義語句,則正確的輸入語句是【多選】( )
int b;
char c[10];
A: scanf("%d%s",&b,&c); ????????B: scanf("%d%s",&b,c);
C: scanf("%d%s",b,c);? ? ? ? ? ? ??D: scanf("%d%s",b,&c);?
編程題:
題一:打印1到最大的n位數
示例1
輸入:
1返回值:
[1,2,3,4,5,6,7,8,9]
思路一:
????????創建一個指針數組a,用num記錄需要輸入元素的個數,將從1開始到num個結束的值輸入到個個數組下標中,返回指針a。
注意:這里的returnSize指的是數組元素個數!
int* printNumbers(int n, int* returnSize )
{int i = 0;int num = 1;int* a;//計算元素個數for(i = n;i != 0;i--){num *= 10; }*returnSize =num-1;//開辟需要存儲的個數的空間a = (int*)malloc(sizeof(int)*(*returnSize));for(i = 1;i < num;i++){a[i-1] = i;}return a;
}
題二:計算日期到天數轉換
示例1
輸入:
2012 12 31輸出:
366
?思路一:
? ? ? ? 分別創建用來scanf()的year、mon、day,以及記錄每月天數的month[ ],再判斷年份是否是閏年,再求天數求和。
#include <stdio.h>int main()
{int year = 0;//保存每月天數int month[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};int day = 0;int mon = 0;int sum = 0;scanf("%d%d%d",&year,&mon,&day);//判斷是否是閏年if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){month[2] = 29;}//求目標月份前的天數和for(int i = 1;i < mon ;i++){sum += month[i];}printf("%d",sum+day);return 0;
}