C语言初阶测试

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;
}

链接:倒置字符串_牛客题霸_牛客网

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值