本文包含多个C语言编程示例,包括循环控制(break/continue)、字符串处理(strlen/sizeof)、九九乘法表、最大公约数(辗转相除法)、素数判断(100-200)、图形打印(X图案/空心正方形)、矩阵转置、数组逆序输出、数组交换以及平均值计算。重点展示了各种基础算法的实现方法,如通过嵌套循环控制流程、利用取模运算求公约数、使用标志位判断素数等。所有示例均采用标准C语法,包含完整的main函数结构和基本输入输出操作。
break和continue题目

求a的值?
当进入循环后 要当b>20才跳出循环打印a
当if(b%3==1)进行7次 b=21时 跳出循环
此时a的值为8

b

数组中地址是由低地址到高地址
选d

strlen打印\0之前的字符个数
而acY中无\0 是随机值 无法比较
sizeof打印个数
acX中abcdefg\0 打印是8个
而acYabcdefg 打印是7个
所以选c

(3,4)是逗号表达式打印是最后一个表达式的结果 4
arr中有4个int类型的变量
sizeof打印的结果是16
选B

sizeof比strlen多打印一个\0
所以选A
打印9*9乘法表
int main()
{
for (int i = 1; i <=9; i++)
{
for (int j = 1; j <= i; j++)
{
printf("%d*%d=%d", i, j, i * j);
}
printf("\n");
}
return 0;
}

求两个数最大公约数 辗转相除法

int main()
{
int x = 20;
int y = 40;
int c = y % x;
while (c!=0)
{
x = c;
y = x;
c = y % x;
}
printf("%d", x);
return 0;
}


}
找到100到200素数
int main() {
int i, j;
for (i = 100; i <= 200; i++) {
for (j = 2; j < i; j++) {
if (i % j == 0) {
break; // 如果能被整除,则不是素数
}
}
if (i == j) { // 如果循环结束后j等于i,则是素数
printf("%d ", i);
}
}
return 0;
}

打印X图案
int main()
{
int a ;
while (scanf("%d",&a)!=EOF) { // 注意 while 处理多个 case
for(int i=0;i<=a;i++)
{
for(int j=0;j<a;j++)
{
if(i==j||i+j==4)
{
printf("*");
}else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
}
打印空心正方形
int main()
{
int a;
while (scanf("%d", &a) != EOF)
{
for (int i = 0; i < a; i++) {
for (int j = 0; j < a; j++) {
if (i == 0 || i == a - 1 || j == 0 || j == a - 1) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
}
return 0;
}

矩阵倒置
把 int arr[2][3]
123
421
变成
int arr[3][2]
14
22
31
#include<stdio.h>
int main()
{
int arr[2][3] = { 1,2,3,4,2,1};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++) {
printf("%d", arr[j][i]);
}
printf("\n");
}
return 0;
}


就是i j 的坐标互换
逆序输出
将12345678910
变成10987654321
#include <stdio.h>
int main() {
int n = 0;
int arr[10] = { 0 };
for (n = 0; n < 10; n++) {
scanf("%d", &arr[n]);
}
for (n = 9; n >= 0; n--) {
printf("%d ", arr[n]);
}
return 0;
}
将两个数组的内容交换
int main()
{
int arr1[3] = { 1,2,3 };
int arr2[3] = { 2,3,5 };
int arr3[3] = { 0 };
int sz = sizeof(arr1) / sizeof(arr1[1]);
for (int i = 0; i < sz; i++)
{
int tmp = arr2[i];
arr2[i] = arr1[i];
arr1[i] = tmp;
}
for (int i = 0; i < sz; i++)
{
printf("%d", arr1[i]);
}
printf("\n");
for (int i = 0; i < sz; i++)
{
printf("%d", arr2[i]);
}
return 0;
}

计算数组的平均值

