1.打印100-200之间的素数
#define _CRT_SECURE_NO_WARNINGS
打印100-200之间的素数
循环方法
#include <stdio.h>
#include <math.h>
int main()
{
int i = 100;
while (i<=200)
{
int x = 2;
while (x<=i)
{
if (i % x != 0)
{
x++;
if (x == i)
{
printf("%d ", i);
}
}
else if(i%x==0)
{
break;
}
}
i++;
}
return 0;
}
int main()
{
int i = 0;
for (i = 101; i <= 200; i+=2)
{
int flog = 1;
int x = 0;
for (x=2;x<=sqrt(i);x++)
{
if (i % x == 0)
{
flog = 0;
break;
}
}
if (flog == 1)
{
printf("%d ",i);
}
}
return 0;
}
int sushu(int n)
{
int x = 2;
for (x = 2; x <= sqrt(n); x++)
{
if (n % x == 0)
{
return 0;
}
}
return 1;
}
int main()
{
int i = 0;
for (i = 100; i <= 200; i++)
{
if(sushu(i))
printf("%d ", i);
}
return 0;
}
2.打印1000-2000闰年
//打印1000-2000之间的闰年。能被四整除,但不能被100整除,可以被400整除
//int runnian(int i)
//{
// if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
// {
// return 1;
// }
return0;
//}
//int main()
//{
// int i = 0;
// for (i=1000;i<=2000;i++)
// {
// if(runnian(i))
{
printf("%d ",i);
}
// }
// return 0;
//}
int main()
{
int i = 0;
for (i = 1000; i <= 2000; i++)
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
printf("%d ", i);
}
}
return 0;
}
要保证函数的单一功能
3.写一个函数,实现有序数组二分查找
//写一个函数,实现有序数组二分查找
int tow_serch(int arr[], int len, int k)
{
int left = 0;
int right = len - 1;
while (left<=right)
{
int mid = left + (right - left) / 2;
if (arr[mid] > k)
{
right = mid - 1;
}
else if (arr[mid] < k)
{
left = mid + 1;
}
else
return mid;
}
if (left >= right)
{
return -1;
}
}
int main()
{
int arr[] = {1,2,3,4,5,6,7,8,9};
int k = 7;
int len = sizeof(arr) / sizeof(arr[0]);
int a = tow_serch(arr, len, k);
if(a==-1)
{
printf("找不到");
}
else
{
printf("找到了,下标是:%d",a);
}
return 0;
}
数组传参穿的是首元素地址
4.写一个函数每调用一次num加一
//写一个函数每调用一次num加一
void add(int*p)
{
(*p)++ ;
}
int main()
{
int num = 0;
add(&num);
printf("%d",num);
return 0;
}
5.接收一个整形值,按顺序打印
//接收一个整形值,按顺序打印
//例子1234 打印1 2 3 4
//void print(int a)
//{
// if (a > 9)
// {
// a % 10;
// print(a / 10);
// printf("%d\n", a % 10);
// }
// else
// {
// printf("%d\n",a);
// }
//}
void print(int a)
{
if (a > 9)
{
print(a / 10);
}
printf("%d\n", a%10);
}
int main()
{
int a = 0;
scanf("%d",&a);
print(a);
return 0;
}
6.编写一个求字符穿长度的函数,不能创建临时变量
//编写一个求字符串长度的函数,不能创建临时变量
int my_strlen(char* arr)
{
if (*arr != '\0')
{
return 1 + my_strlen(arr + 1);
}
else
return 0;
}
int main()
{
char arr[] = { "abcdef" };
int ret = my_strlen(arr);
printf("%d",ret);
return 0;
}
7.用递归和迭代求n!
//用递归和迭代求n!
int jiecheng(int b)
{
int i = 0;
int a = 1;
for (i = 1; i <= b; i++)
{
a = a * i;
}
return a;
}
int fnc(n)
{
if (n <= 1)
{
return 1;
}
else
{
return n*fnc(n - 1);
}
}
int main()
{
int n = 2;
scanf("%d",&n);
int ret =jiecheng(n);
/*int ret = fnc(n);*/
printf("%d",ret);
return 0;
}
8.求第n个斐波那契数列值
//求第n个斐波那契数列值
int feibo(int n)
{
if (n <= 2)
{
return 1;
}
else
{
return feibo(n-2) + feibo(n - 1);
}
}
int naqie(n)
{
int i = 0;
int a = 1;
int b = 1;
int c = 1;
while (n >= 3)
{
a = b;
b = c;
c = a + b;
n--;
}
return c;
}
int main()
{
int n = 0;
scanf("%d",&n);
/*int ret = feibo(n);*/
int ret = naqie(n);
printf("%d",ret);
return 0;
}
8.小题
1.下面代码执行的结果是:(死循环打印5)
#include <stdio.h>
int main
{
int i = 0;
for(i=0;i<10; i++)
{
if(i=5)
printf("%d “,i);
}
return 0;
}
2.关于if吾句说法正确是:(c)
题目内容
A .i语句后面只能跟一条语句
B.i语句中0表示假,1表示真
C.if语句是一种分支语句,可以实现单分支,也可以实现多分支
D.else语句总是和它的对齐的if语句匹配
3.关于switch说法不正确的是:c
A .switct语句中的default子句可以放在任意位置
B.switch语句中case后的表达式只能是整形常量表达式
C.switch语句中case子句必须在defaut子句之前
D .switch语句中case表达式不要求顺序
4.func(1)=0
int func(int a)
{
int b;
switch
{ case 1:b=30;
case 2:b=20;
case 3:b=16;
default:b=0;
}
return b;
}
则func(1)=()
5.switch(c)据句中,c不可以是什么类型(d) char存的是ASCII值
题目内容:
A .int
B .long
C .char
D .float
6.输出结果:hellothird
#include <stdio.h>
int main()
{
int x=3;
int y = 3;
switch(x%2)
{
case 1:
switch(y)
{
case 0:
printf("first");
case 1:
printf("second");
break;
default:
printf("hello");
}
case 2:printf("third");
}
return 0;
}
9.小题
1.题目名称:
关于实参和形参描述错误的是:c
题目内容:
A .形参是实参的一份临时拷贝
B.形参是在函数调用的时候才实例化,才开辟内存空间
C.改变形参就是改变实参
D.函数调用如果采用传值调用,改变形参不影响实参
2.题目名称:
函数调用exec((v1,v2),(v3,v4),v5,v6);中,实参的个数是:B
A.3
B.4
C.5
D.6
3.
题目名称:
以下关于函数设计不正确的说法是:b
题目内容
A.函数设计应该追求高内聚低耦合(降低跟别人的关联,内容单一)
8.要尽可能多的使用全局变量
C.函数参数不易过多
D.设计函数时,尽量做到谁申请的资源就由谁来释放
4.
关于C语言函数描述正确的是:C
A.函数必须有参数和返回值
B.函数的实参只能是变量
C.库函数的使用必须要包含对应的头文件
D.有了库函数就不需要自定函数了
5.
C语言规定,在一个源程序中,main函数的位置(C)
A.必须在最开始
8.必须在库函数的后面
C.可以任意
D .必须在最后
6.
以下叙述中不正确的是:D
A .在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是在栈中保存
C.在一个函数内定义的变量只在本函数范围内有效
D .在一个函数内复合语句中定义的变量在本函数范围内有效(复合语句指函数中的
成对括号构成的代码)
7.
能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:A
A .retum 这二个数
B.形参用数组
C.形参用二个指针
D.用二个全局变量
8.
关于函数调用说法不正确的是:C
A.数可以传值调用,传值调用的时候形参是实参的一份临时拷贝
B.函数可以传址调用,传址调用的时候,可以通过形参操作实参
C.函数可以嵌套定义,但是不能嵌套调用
D.函数可以嵌套调用,但是不能嵌套定义
9.在函数调用时,以下说法正确的是B
A.函数调用后必须带回返回值
B.实际参数和形式参数可以同名
C.函数间的数据传递不可以使用全局变量
D.主调函数和被调函数总是在同一个文件里