1.下列程序执行后,输出的结果为( )(牛客网)
#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
正确答案:B
2.以下程序的输出结果是?(牛客网)
int x = 1;
do{
printf("%2d\n",x++);
}while(x--);
A 1
B 无任何输出
C 2
D 陷入死循环
正确答案:D
3.下面的代码段中,执行之后 i 和 j 的值是什么()(牛客网)
int i=1;
int j;
j=i++;
A 1,1
B 1,2
C 2,1
D 2,2
正确答案:C
4、以下程序的k最终值是:(牛客网)
int i = 10;
int j = 20;
int k = 3;
k *= i + j;
A 90
B 50
C 70
D 30
正确答案:A
5.以下程序的最终的输出结果为:(牛客网)
#include<stdio.h>
#include<stdlib.h>
int a=1;
void test(){
int a=2;
a+=1;
}
int main(){
test();
printf("%d\n",a);
return 0;
}
此时打印a的值为:
A 1
B 2
C 3
D 4
正确答案:A
6.下列描述中正确的是()(牛客网)
A 表示m>n为true或者m<n为true的表达式为m>n&&m<n
B switch语句结构中必须有default语句
C 如果至少有一个操作数为true,则包含“||”运算符的表达式true
D if语句结构中必须有else语句
正确答案:C
7. C 语言规定,在一个源程序中,main函数的位置()(牛客网)
A 必须在最开始
B 必须在系统调用的库函数的后面
C 可以任意
D 必须在最后
正确答案:C
8. 以下叙述不正确的是()(牛客网)
A 一个C源程序可由一个或多个函数组成
B 一个C源程序必须包含一个main函数
C C程序的基本组成单位是函数
D 在C程序中,注释说明只能位于一条语句的后面
正确答案:D
9. 以下叙述正确的是()(牛客网)
A 在C程序中,main函数必须位于程序的最前面
B C程序的每行中只能写一条语句
C C语言本身没有输入输出语句
D 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
正确答案:C
10.执行如下代码, c 的值是:()(牛客网)
int a=0,c=0;
do{
--c;
a=a-1;
}while(a>0);
A 0
B 1
C -1
D 死循环
正确答案:C
11、假定 x 和 y 为 double 型,则执行 x=2 ; y=x+3/2; 后y的值为()
A 3.500000
B 3
C 2.000000
D 3.000000
正确答案:D
12、以 下 for 循 环 的 执 行 次 数 是()。 (牛客网)
for(x=0,y=0;(y=123)&&(x<4);x++);
A 是无限循环
B 循环次数不定
C 4次
D 3次
正确答案:C
13、若有定义语句: int year=1009 , *p=&year ;以下不能使变量 year 中的值增至
1010 的语句是 (牛客网)
A *p+=1;
B (*p)++;
C ++(*p)
D *p++
正确答案:D
14、选择表达式 11|10 的结果(本题数值均为十进制)(牛客网)
A 11
B 10
C 8
D 2
正确答案:A
15、char a ; int b ; flat c ; double d ;
则表达式 a*b+d-c 值的类型为()(牛客网)
A float
B int
C char
D double
正确答案:D
16、ACM编程题 标题:求最小公倍数 | 时间限制:1秒 | 内存限制:32768K
正整数A和正整数B 的最小公倍数是指 能被A和B整除的最小的正整数值,设计一个算法,
求输入A和B的最小公倍数。
输入描述:
输入两个正整数A和B。
输出描述:
输出A和B的最小公倍数。
示例1:
输入
5 7
输出
35
【题目解析】:
本题描述很简单,题目描述很清楚,读题即可
#include<stdio.h>
int main()
{
int A, B;
scanf("%d%d", &A, &B);
int i = 1;
while (((A * i) % B) != 0)
{
i++;
}
printf("%d\n", A*i);
return 0;
}
链接:求最小公倍数_牛客题霸_牛客网
17、 ACM编程题 标题:倒置字符串 | 时间限制:1秒 | 内存限制:32768K
将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I
输入描述:
每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100
输出描述:
依次输出倒置之后的字符串,以空格分割
示例1:
输入
I like beijing.
输出
beijing. like I
本题是一个字符串替换处理的题,题意比较简答,具体大家参见题目
【解题思路】:
#include <stdio.h>
#include <string.h>
void reverse(char* start, char* end) {
while (start < end)
{
char temp = *start;
* start = *end;
* end = temp;
start++;
end--;
}
}
int main() {
char input[100];
// 注意不能使用scanf,scanf遇到空格,一次输入接收就结束了
gets(input);
// 翻转整个句子
reverse(input, input + strlen(input) - 1);
// 翻转单词
char* start = input;
while (*start)
{
char* end = start;
while (*end != ' ' && *end)
end++;
reverse(start, end - 1);
if (*end)
start = end + 1;
else
start = end;
}
printf("%s", input);
return 0;
}
链接:倒置字符串_牛客题霸_牛客网