(1)编写程序,验证书中图2.12所示的一维 数据引用模型示例,如果b-null,数组a的值 是否发生变化 (2)输出20个不重复的 (1-100) 随机数. (3)找出10-100之间3的倍数,并按照每行 递增 - 个数字的格式输出(如图1所示:第: 行输出1个数字,第二行输出2个数字,依次 类推) bc def 图1.输出格式
时间: 2024-03-24 21:36:11 浏览: 6
1. 一维数据引用模型示例的程序验证:
```c
#include <stdio.h>
int main() {
int *a, b;
a = &b;
*a = 10;
b = 20;
printf("%d\n", *a); // 输出20
a = NULL;
*a = 30; // 这里会出现段错误,程序会崩溃
printf("%d\n", *a); // 不会执行到这里
printf("%d\n", b); // b的值仍然为20
return 0;
}
```
当a指针为NULL时,程序会崩溃并出现段错误,但是数组a的值并不会因此发生变化。
2. 输出20个不重复的(1-100)随机数的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int num[100], i, j, tmp;
srand((unsigned int)time(NULL)); // 设置随机种子
for (i = 0; i < 100; i++) {
num[i] = i + 1;
}
for (i = 0; i < 20; i++) {
j = rand() % (100 - i) + i;
tmp = num[i];
num[i] = num[j];
num[j] = tmp;
printf("%d ", num[i]);
}
printf("\n");
return 0;
}
```
3. 找出10-100之间3的倍数并按照每行递增个数字的格式输出的程序:
```c
#include <stdio.h>
int main() {
int num = 10, count = 1;
while (num <= 100) {
if (num % 3 == 0) {
printf("%d ", num);
if (count < 6) {
count++;
} else {
printf("\n");
count = 1;
}
}
num++;
}
printf("\n");
return 0;
}
```
输出格式如下:
```
10 12 15 18 21 24
27 30 33 36 39 42
45 48 51 54 57 60
63 66 69 72 75 78
81 84 87 90 93 96
99
```