c语言常考编程题(c语言期末考试常见编程题)

http://www.itjxue.com  2023-03-16 08:37  来源:未知  点击次数: 

C语言编程题目?

下面是一个可以利用指针将两个字符串连接起来的 C 语言程序。该程序定义了一个子函数 `StrCat`,用于将两个字符串连接起来,并返回连接后的结果。主函数中,我们先从标准输入读入两个字符串,然后根据它们的长度调用 `StrCat` 函数,将它们连接起来并输出结果。

```c

#include stdio.h

#include string.h

#define MAX_LEN 100

char* StrCat(char* s, char* t);

int main() {

char s1[MAX_LEN], s2[MAX_LEN];

// 从标准输入读入两个字符串

printf("请输入第一个字符串:");

fgets(s1, MAX_LEN, stdin);

printf("请输入第二个字符串:");

fgets(s2, MAX_LEN, stdin);

// 将短的字符串放在前面,然后连接两个字符串

if (strlen(s1) strlen(s2)) {

char *t = s1;

s1 = s2;

s2 = t;

}

StrCat(s1, s2);

// 输出结果

printf("连接后的字符串为:%s", s1);

return 0;

}

char* StrCat(char* s, char* t) {

int i, j;

// 找到 s 末尾位置

for (i = 0; s[i] != '\0'; i++);

// 将 t 中的字符复制到 s 的末尾

for (j = 0; t[j] != '\0'; j++) {

s[i + j] = t[j];

}

s[i + j] = '\0';

return s;

}

```

在这个程序中,我们首先定义了子函数 `StrCat`,该函数接受两个指向字符数组的指针 `s` 和 `t`,将 `t` 中的字符连接到 `s` 的末尾,并返回连接后的结果。具体来说,我们首先找到 `s` 的末尾位置,然后使用循环遍历 `t` 中的每个字符,并将它们复制到 `s` 的末尾。

在主函数中,我们先从标准输入读入两个字符串,并使用 `strlen` 函数获取它们的长度。然后,我们判断哪个字符串比较短,将其放在前面,并调用 `StrCat` 函数将两个字符串连接起来。最后,我们使用 `printf` 函数输出连接后的字符串。

需要注意的是,在函数 `StrCat` 中,我们没有对输入数据进行任何检查(例如,字符串的长度是否超过了数组的大小等)。如果需要确保输入数据的有效性,可以在程序中添加相应的检查代码。

c语言编程题目求解

题目1:

使用if多分支结构:

c

#includestdio.h

int main()

{

int score;

printf("请输入学生的成绩:\n");

scanf("%d", score);

if(score=90 score=99){

printf("学生的成绩等级为A\n");

}else if(score=80 score=89){

printf("学生的成绩等级为B\n");

}else if(score=70 score=79){

printf("学生的成绩等级为C\n");

}else if(score=60 score=69){

printf("学生的成绩等级为D\n");

}else if(score=0 score=59){

printf("学生的成绩等级为E\n");

}else{

printf("输入的成绩不合法\n");

}

return 0;

}

使用switch多分支结构:

c

#includestdio.h

int main()

{

int score;

printf("请输入学生的成绩:\n");

scanf("%d", score);

switch(score/10){

case 10:

case 9:

printf("学生的成绩等级为A\n");

break;

case 8:

printf("学生的成绩等级为B\n");

break;

case 7:

printf("学生的成绩等级为C\n");

break;

case 6:

printf("学生的成绩等级为D\n");

break;

default:

if(score=0 score=59){

printf("学生的成绩等级为E\n");

}else{

printf("输入的成绩不合法\n");

}

break;

}

return 0;

}

题目2:

c

#includestdio.h

#includemath.h

int is_prime(int num)

{

int i;

for(i=2; i=sqrt(num); i++){

if(num%i == 0){

return 0;

}

}

return 1;

}

int main()

{

int num;

printf("请输入一个整数:\n");

scanf("%d", num);

if(is_prime(num)){

printf("%d是素数\n", num);

}else{

printf("%d不是素数\n", num);

}

return 0;

}

题目3:

c

#includestdio.h

#define N 5

int main()

{

int arr[N];

int i, temp;

printf("请输入%d个数:\n", N);

for(i=0; iN; i++){

scanf("%d", arr[i]);

}

for(i=0; iN/2; i++){

temp = arr[i];

arr[i] = arr[N-1-i];

arr[N-1-i] = temp;

}

printf("逆序输出数组:");

for(i=0; iN; i++){

printf("%d ", arr[i]);

}

printf("\n");

return 0;

}

C语言的编程题(急)

#include stdio.h

#include malloc.h

int main()

{

? ? int *a,(*b)[2],n,k,i,j;

? ? scanf("%d",n);

? ? a=(int*)malloc(sizeof(int)*n);

? ? for(i=0;in;++i)

? ? ? ? scanf("%d",a[i]);

? ? scanf("%d",k);

? ? b=(int(*)[2])malloc(sizeof(int)*k*2);

? ? for(i=0;ik;++i)

? ? ? ? scanf("%d%d",b[i][0],b[i][1]);

? ? for(i=0;in;++i)

? ? ? ? for(j=0;jk;++j)

? ? ? ? ? ? if(a[i]=b[j][0]a[i]=b[j][1])

? ? ? ? ? ? ? ? a[i]=0;

? ? for(i=0;in;++i)

? ? ? ? if(a[i]0)

? ? ? ? ? ? printf("%d ",a[i]);

? ? free(a);

? ? free(b);

? ? return 0;

}

(责任编辑:IT教学网)

更多

推荐Javascript/Ajax文章