本文包含多个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 arr23
123
421
变成
int arr32
14
22
31
#include<stdio.h>
int main()
{
int arr23 = { 1,2,3,4,2,1};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++) {
printf("%d", arrji);
}
printf("\n");
}
return 0;
}


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

计算数组的平均值

