?
目录
3. 下面的代码段中,执行之后 i 和 j 的值是什么()?
?11. 假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后y的值为()
13. 若有定义语句: int year=1009 , *p=&year ;
14. 选择表达式 11|10 的结果(本题数值均为十进制)?
15. char a ; int b ; flat c ; double d ; 则表达式 a*b+d-c 值的类型为()?
?
#include <stdio.h>
int cnt=0;
int fib(int n){
cnt++;
if(n==0)
return 1;
else if(n==1)
return 2;
else
return fib(n-1)+fib(n-2);
}
void main()
{
fib(8);
printf("%d",cnt);
}
A 41
B 67
C 109
D 177?
总共算出有67次递归运算,每次进入fib()都会cnt++;所以选B?
int x = 1;
do{
printf("%2d\n",x++);
}while(x--);?
A 1
B 无任何输出
C 2
D 陷入死循环
x=1,进入,然后后置加加变成2,在进入while,变成1.如此死循环。选D?
int i=1;
int j;
j=i++
A 1,1
B 1,2
C 2,1
D 2,2
选C
int i = 10;
int j = 20;
int k = 3;
k *= i + j;
?A 90
B 50
C 70
D 30
因为赋值操作符优先级较低,所以先运算i+j再*K?
int a=1;
void test()
{
int a=2;
a+=1;
} ?
int main(){
test();
printf("%d\n",a);
return 0;
}
A 1
B 2
C 3
D 4?
局部变量出了作用域就销毁了,所以打印的是全局变量a,这里并没有将a的地址传过去。?
A 表示m>n为true或者m<n为true的表达式为m>n&&m<n
B switch语句结构中必须有default语句
C 如果至少有一个操作数为true,则包含“]”运算符的表达式trueD if语句结构中必须有else语句
选C?
A 必须在最开始
B 必须在系统调用的库函数的后面
C 可以任意
D 必须在最后?
选C?
A? 一个C源程序可由一个或多个函数组成
B? 一个C源程序必须包含一个main函数
C? ?C程序的基本组成单位是函数
D? ?在C程序中,注释说明只能位于一条语句的后面?
?选D
在C程序中,main函数必须位于程序的最前面
C程序的每行中只能写一条语句
C语言本身没有输入输出语句
在对一个C程序进行编译的过程中,可发现注释中的拼写错误?
选C?
int a=0,c=0;
do{
--c;
a=a-1;
}while(a>0);
A? 0
B 1
C? -1
D 死循环?
c--等于-1; a = a-1? a 等于-1,while(-1>0) 为假,跳出循环,所以选C;?
A 3.500000
B 3
C 2.000000
D 3.000000
3/2为整数1,? 1+double型的x, 1+2.0 = 3.0;所以选D?
for(x=0,y=0;(y=123)&&(x<4);x++);?
A 是无限循环
B 循环次数不定
C 4次
D 3次
y=123恒为真,只看x<4; 只有x =0,1,2,3一共四次循环就会跳出,所以选C?
以下不能使变量 year 中的值增至 1010 的语句是?
A *p+=1;
B (*p)++;
C ++(*p)
D *p++?
*p++ p会先跟++结合,就会跳到下一个整型地址,题目要的是通过&year修改值?;选D
A 11
B 10
C 8
D 2
| //按位或, 只要有一个为真就为真,1011和1010 | 后,结果为 1011;所以选A
A float
B int
C char
D double?
两个不同类型进行计算时,会吧小的提?升成的,所以最后结果为double.选D
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,求输入A和B的最小 公倍数。
输入描述: 输入两个正整数A和B。
输出描述: 输出A和B的最小公倍数。?
示例1: 输入 5 7 输出 35?
int main()
{
long long a = 0;
long long b = 0;
scanf("%lld %lld", &a, &b);
//求出a和b的较大值
long long i = 1;
while (i * a % b != 0)
{
i++;
}
printf("%lld\n", i * a);
return 0;
}
?
将一句话的单词进行倒置,标点不倒置。
比如 I like beijing. 经过函数后变为:beijing. like I
输入描述: 每个测试输入包含1个测试用例: I like beijing.
输入用例长度不超过100 输出描述: 依次输出倒置之后的字符串,以空格分割
示例1: 输入 I like beijing.
????????????????输出 beijing. like I?
void reverse(char* left, char* right)
{
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main() {
char arr[101] = { 0 };
//abcdef ghi qwer\0
//scanf("%s", arr);
//gets(arr);
//scanf("%[^\n]s", arr);
int ch = 0;
int i = 0;
while ((ch = getchar()) != '\n')
{
arr[i++] = ch;
}
int len = strlen(arr);
//1. 逆序整个字符串
reverse(arr, arr + len - 1);
//2. 逆序每个单词
char* cur = arr;
while (*cur)
{
char* start = cur;
while (*cur != ' ' && *cur != '\0')
{
cur++;
}
char* end = cur - 1;
reverse(start, end);//逆序一个单词
if (*cur == ' ')
cur++;
}
printf("%s\n", arr);
return 0;
}
?
【C语言】初阶已经全介绍了一遍,做完这套初阶测试,巩固,后续还会出每日一题【C语言】。
文中不足的地方,希望大佬指点改善?
?