IT 常见面试题总结2

来源:互联网 发布:服务器域名是后缀吗 编辑:程序博客网 时间:2024/05/19 06:39

001:输入一行字符,统计其中有多少个单词,单词之间用空格分隔开

#include<stdio.h>#include<string.h>int main() {char str[100];int num = 0;int word = 0;gets(str);for (int i = 0; str[i]!= '\0';i++) {if (str[i]==' ') {word = 0;}else if(word==0){word = 1;num++;}}printf("%d", num);//使得dos界面不闪屏            int in;scanf("%d", &in);return 0;}


002:函数指针的应用:输入两个整数,当用户输入1,输出两个数的最大值,当用户输入2,输出两个数的最小值

#include<stdio.h>int main() {int max(int, int);int min(int, int);int(*p)(int, int);int a, b, c, n;printf("输入两个整数\n");scanf("%d", &a);scanf("%d", &b);printf("输入操作模式:1 求最大值 2 求最小值");scanf("%d", &n);if (n == 1) {p = max;}else if(n==2) {p = min;}else{return;}c = (*p)(a, b);printf("c=%d", c);//使得dos界面不闪屏int in;scanf("%d", &in);return 0;}int max(int x,int y) {return (x > y ? x : y);}int min(int x,int y) {return (x < y ? x : y);}


003:建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分,输出不及格的成绩。

#include<stdio.h>#include<stdlib.h>int main() {void check(int * score);int *pl;int i;pl = (int *)malloc(5 * sizeof(int));for (i = 0; i < 5;i++) {scanf("%d", pl + i);}check(pl);//使得dos界面不闪屏int in;scanf("%d", &in);return 0;}void check(int *p) {printf("不及格的成绩:\n");for (int i = 0; i < 5; i++) {if (p[i] < 60) {printf("%d\n", p[i]);}}}


004:使用结构体建立简单的静态链表并输出

//建立简单的静态链表#include<stdio.h>struct Student {int num;float score;struct Student *next;};int main() {struct Student a, b, c;struct Student *head;struct Student *p;a.num = 100001;a.score = 89.5;b.num = 100002;b.score = 90.5;c.num = 100003;c.score = 85;head = &a;a.next = &b;b.next = &c;c.next = NULL;p = head;do {printf("%1d%5.1f\n", p->num, p->score);p = p->next;} while (p != NULL);//使得dos界面不闪屏            int in;scanf("%d",&in);return 0;}

005:使用结构体建立动态链表并输出

//建立简单的动态链表#include<stdio.h>#include<stdlib.h>#define Len sizeof(struct Student)struct Student {long num;float score;struct Student *next;};int n;//定义节点个数全局变量struct Student* creat() {n = 0;struct Student *head;struct Student *p1, *p2;p1 = p2 = (struct Studenr *)malloc(Len);//开辟一个新的单元scanf("%d%f", &p1->num, &p1->score);//输入第一个节点head = NULL;while (p1->num != 0) {n = n + 1;if (n == 1) {head = p1;}else{p2->next = p1;}p2 = p1;p1 = (struct Student*)malloc(Len);scanf("%d%f", &p1->num, &p1->score);}p2->next = NULL;return head;}int main() {struct Student *pt;pt = creat();printf("num:%d\nscore:%f\n", pt->num, pt->score);//使得dos界面不闪屏            int in;scanf("%d", &in);return 0;}


006:

0 0
原创粉丝点击