目錄
說明:
(1)
(2)
錯(cuò)題
1.printf輸出?
(1)關(guān)于printf的輸出
(2)注意點(diǎn)
2.? 關(guān)鍵字
3. ASCII編碼
4.轉(zhuǎn)義字符
?編輯
5.變量
6.for循環(huán)
(1)線段圖案
?編輯
(2) for循環(huán)體
(3) 素?cái)?shù)
(4)"x"型圖案?
(5)正方形圖案
7.while循環(huán)?
(1)注意點(diǎn)
(2)求兩個(gè)數(shù)的最大公約數(shù)
8.switch..case語句
(1)switch..case中的break
(2) 注意點(diǎn)
9.數(shù)組?
10.函數(shù)
(1)
(2) 9*9乘法口訣表
重點(diǎn)題型
1.關(guān)于strlen和sizeof計(jì)算的題目
(1)strlen作用與數(shù)組
(2)轉(zhuǎn)義字符和strlen?
(3)關(guān)于sizeof題目?
(4)strlen和sizeof的計(jì)算?
4.1
4.2?
2.前置++和后置++?
3.數(shù)組&函數(shù)?
編程題
1.將三個(gè)數(shù)從大到小排序
2.在數(shù)組中尋求最大值
??編輯
3.計(jì)算分組求和
方法一
方法二?
4.數(shù)數(shù)字
5.數(shù)組的并序并升序
說明:
(1)
以下所列題目是我結(jié)合平常時(shí)所做錯(cuò),重點(diǎn)題型和編程題.
(2)
必刷題上更新至函數(shù)
錯(cuò)題
1.printf輸出?
(1)關(guān)于printf的輸出
(2)注意點(diǎn)
printf()參數(shù)與占位符是一一對應(yīng)關(guān)系,如果有n個(gè)占位符,printf()的參數(shù)就應(yīng)該有n+1個(gè)?
2.? 關(guān)鍵字
continue語句和break語句相似。
所不同的是,
它不是退出一個(gè)循環(huán),而是開始循環(huán)的一次新迭代。?
3. ASCII編碼
4.轉(zhuǎn)義字符
5.變量
局部變量是放在內(nèi)存的棧區(qū)的,全局變量是放在內(nèi)存的靜態(tài)區(qū)?
6.for循環(huán)
(1)線段圖案
(2) for循環(huán)體
(3) 素?cái)?shù)
打印100-200的素?cái)?shù)
素?cái)?shù):這個(gè)數(shù)只能除1和它本身的數(shù)
int main()
{
int i = 0, count = 0;
for (i = 100; i <= 200; i++)
{
int j = 0;
for (j = 2; j <= i; j++)
{
if (i % j == 0)
{
break;
}
}
if (i == j) //它本身
{
count++;
printf("%d ", i);
}
}
printf("\n");
printf("count=%d\n", count);
return 0;
}
(4)"x"型圖案?
int main()
{
int n = 0;
while ((scanf("%d", &n) != EOF))
{
int i = 0; //控制行
for (i = 0; i < n; i++)
{
int j = 0;//控制列
for (j = 0; j < n; j++)
{
if (i == j)
{
printf("*");
}
else if (i + j == n - 1)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
逐步調(diào)試:?
(5)正方形圖案
int main()
{
int n = 0;
while ((scanf("%d", &n) != EOF))
{
int i = 0;//控制行
for (i = 0; i < n; i++)
{
int j = 0;
for (j = 0; j < n; j++)
{
if (i == 0 || i == n - 1)
{
printf("* ");
}
else if (j == 0 || j == n - 1)
{
printf("* ");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
return 0;
}
逐步調(diào)試及總結(jié)?
7.while循環(huán)?
(1)注意點(diǎn)
關(guān)于while(條件表達(dá)式) 循環(huán)體,?(假設(shè)循環(huán)體里面沒有break,continue,return,goto等等語句)????
條件表達(dá)式的執(zhí)行次數(shù)總是比循環(huán)體的執(zhí)行次數(shù)多一次?
?while循環(huán)中,當(dāng)條件表達(dá)式成立時(shí),才會執(zhí)行循環(huán)體中語句,每次執(zhí)行期間,都會對循環(huán)因子進(jìn)行修改(否則就成為死循環(huán)),修改完成后如果while條件表達(dá)式成立,繼續(xù)循環(huán),如果不成立,循環(huán)結(jié)束
(2)求兩個(gè)數(shù)的最大公約數(shù)
int main()
{
int a = 0, b = 0, c = 0;
scanf("%d %d", &a, &b);
while (c = a % b)//表達(dá)式直到為0停止
{
a = b; //b-->a
b = c; //c-->b
}
printf("這兩個(gè)數(shù)的最大公約數(shù)為%d\n", b);
return 0;
}
8.switch..case語句
(1)switch..case中的break
(2) 注意點(diǎn)
??switch語句中表達(dá)式的類型只能是:整形(int)和枚舉類型
9.數(shù)組?
數(shù)組的下標(biāo)由小到大,地址由低到高
10.函數(shù)
(1)
(2) 9*9乘法口訣表
*輸入n就輸出到n*n的乘法口訣
int print(int n)
{
int i = 0;
for (i = 1; i <= n; i++)
{
int j = 0;
for (j = 1; j <= i; j++) //j<=i方便控制臺輸出更有條理性
{
printf("%d*%d=%d ", i, j, i * j);
}
printf("\n");
}
return 0;
}
int main()
{
int n = 0;
scanf("%d", &n);
print(n);
return 0;
}
重點(diǎn)題型
1.關(guān)于strlen和sizeof計(jì)算的題目
(1)strlen作用與數(shù)組
(2)轉(zhuǎn)義字符和strlen?
(3)關(guān)于sizeof題目?
sizeof的計(jì)算
(4)strlen和sizeof的計(jì)算?
4.1
4.2?
2.前置++和后置++?
3.數(shù)組&函數(shù)?
要求:
(1)實(shí)現(xiàn)print() ?打印數(shù)組的每個(gè)元素
(2)實(shí)現(xiàn)reverse() ?函數(shù)完成數(shù)組元素的逆置
(3)實(shí)現(xiàn)函數(shù)init() 初始化數(shù)組為全0
void init(int arr[], int sz, int set)
{
int i = 0;
for (i = 0; i < sz; i++)
{
arr[i] = set;
}
}
void print(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void reverse(int arr[], int sz)
{
int left = 0;
int right = sz - 1;
while (left <= right)
{
int temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
left++;
right--;
}
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz); //打印數(shù)組
reverse(arr, sz);
print(arr, sz); //數(shù)組逆序
init(arr, sz, 0); //函數(shù)set置為0
print(arr, sz); //數(shù)組置0
return 0;
}
編程題
1.將三個(gè)數(shù)從大到小排序
定義臨時(shí)變量temp,
從大到小,先用臨時(shí)變量=最小
圖解:
int main()
{
int a = 0, b = 0, c = 0;
scanf("%d %d %d", &a, &b, &c);
int temp = 0;
//從大到小
if (a < b)
{
temp = a;
a = b;
b = temp;
}
if (a < c)
{
temp = a;
a = c;
c = temp;
}
if (b < c)
{
temp = b;
b = c;
c = temp;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
?
2.在數(shù)組中尋求最大值
int main()
{
int arr[10] = { 0 };
int i = 0;
int max = arr[0]; //先令max取數(shù)組的第一個(gè)元素
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]); //在控制臺輸入10個(gè)數(shù)
if (arr[i] > max) //如果數(shù)組中某個(gè)元素>max
{
max = arr[i]; //令max取數(shù)組的某個(gè)元素
}
}
printf("max=%d\n", max);
//最后輸出單獨(dú)放出來,不能放在循環(huán)中,否則就會輸出10個(gè)不同的最大值
return 0;
}
?
計(jì)算最小值則相反??
3.計(jì)算分組求和
計(jì)算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值
方法一
int main()
{
int i = 0;
double zheng = 0.0;
double fu = 0.0; //分組求和肯定是小數(shù),要用double類型
for (i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
zheng += 1.0 / i; //如果是分母是奇數(shù),就用+
//double類型所含的表達(dá)式要加小數(shù)點(diǎn)和0,如:1.0
}
else
{
fu -= 1.0 / i; //如果是分母是偶數(shù),就用-
}
}
printf("result=%lf\n", zheng+fu);//0.688172
return 0;
}
方法二?
int main()
{
int i = 0;
double sum = 0.0;
int flag = 1; //定義一個(gè)flag
for(i=1; i<=100; i++)
{
sum += flag*1.0/i; //首先分母是奇數(shù),用+
flag = -flag; //然后接著下一步分母是負(fù)數(shù),就用-
}
printf("%lf\n", sum);
return 0;
}
4.數(shù)數(shù)字
數(shù)一下 1到 100 的所有整數(shù)中出現(xiàn)多少個(gè)數(shù)字9?
int main()
{
int count = 0;
int i = 0;
for (i = 1; i <= 100; i++)
{
if(i%10==9)
{
count++;
}
if (i / 10 == 9)
{
count++;
}
}
printf("count=%d\n", count);//20
return 0;
}
*值得注意的是:?
i%10==9:余數(shù)為9,i的個(gè)位數(shù)為9,如9,19,29,39...
i% 9 ==0:余數(shù)為0,是9的倍數(shù),? ? ?如9,18,27,36...
5.數(shù)組的并序并升序
兩個(gè)數(shù)組分別升序組合成一個(gè)數(shù)組,并排為升序
值得注意的是,輸入的兩個(gè)數(shù)組都要分別為升序?。。?/span>
int main()
{
int m = 0, n = 0;//數(shù)組a,b元素個(gè)數(shù)
int i = 0, j = 0;//for循環(huán)會使用到
scanf("%d %d", &m, &n);
//定義數(shù)組
int a[100] = { 0 };
int b[100] = { 0 };
//輸入數(shù)組a,b元素個(gè)數(shù)
for (i = 0; i < m; i++)
{
scanf("%d", &a[i]);
}
for (j = 0; j < n; j++)
{
scanf("%d", &b[j]);
}
//重新初始化為0
i = 0;
j = 0;
while (i < m && j < n)
{
if (a[i] < b[j])
{
printf("%d ", a[i]);
i++;
}
else
{
printf("%d ", b[j]);
j++;
}
}
if (i == m)
{
for (; j < n; j++)
{
printf("%d ", b[j]);
}
}
if (j == n)
{
for (; i < m; i++)
{
printf("%d ", a[i]);
}
}
}
感謝瀏覽和閱讀,希望以上對你有幫助!文章來源:http://www.zghlxwxcb.cn/news/detail-780139.html
創(chuàng)作不易,閱讀完后記得留個(gè)贊和關(guān)注吧?。?!?文章來源地址http://www.zghlxwxcb.cn/news/detail-780139.html
到了這里,關(guān)于C語言必刷題上(保姆式詳解)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!