非正式纳新题目(C语言)1

简介: 非正式纳新题目(C语言)1

非正式纳新题目(C语言)

注意本文不是正式的面试题

正式的面试题:ACAT2021纳新题目(C语言)

说明

本试题一共分为12道题,考核点全部以C语言为主,难度有层次划分,希望你尽最大努力完成,我
们不需要你每道题都能得到正确答案,但希望你能有良好的学习态度。我们期待在面试那天与你相
遇!
(编程题只用写出核心代码或者想出解题思路,你也可以在面试时电脑写出完整代码运行,直接展示
你的结果!)

题目

一、写出下面函数的运行结果。

#include <stdio.h>
#define PI 3 
#define S(r) PI*r*r 
int main(){
  float x,y,area;
  x=2;
  y=1;
  area=S(x+y);
  printf("r=%f\narea=%f\n",x+y,area);
}

二、选做题

1分析以下代码

#include<stdio.h>
int main(){
  int i=0,s=0;
  for( ;; ){
    i++;
    if(i == 3 || i== 5)continue;
    if(i==6)break;
    s+=i;
  }
  printf("%d",s);
  return 0;
}

执行上述程序后的输出结果是( )

A.5

B. 6

C. 7

D. 死循环

2分析以下代码

#include <stdio.h>
main()
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);

执行上述程序后的输出结果是( )

A.2

B.3

C.4

D.编译时有错,无结果

三、下列表达式中,不满足“当x的值为偶数时值为真,为奇数时值为假”要求的是( )

A: x%20

B: !x%2!=0

C: (x/2*2-x)0

D: !(x%2)

四、若有以下定义和赋值语句,

int b[2][3]={0}, (*p)[3];
p=b;

则对b数组的第i行第j列(假设i,j已正确说明并赋值)元素的非法引用为()。

A: *(*(p+i)+j)

B:*(p[i]+j)

C: *(p+i)+j

D:(*(p+i))[j]

五、给出部分语句填写一行语句实现找出三个整数中的最大值

#include <stdio.h>
int main(){
  int x=1;
  int y=2;
  int z=3;
  int max;
  //一行语句
  printf("%d",max);
}

六、二-十进制代码(BCD代码)

相关概念:有权BCD代码是指在表示0-9十个十进制数码的4位二进制代码中,每位二进制数码都有确定的位权值。例如,表1-3-2中的8421码、2421码等。对于有权BCD代码,可以根据位权展开求得所代表的十进制数。例如:

(0111)8421 BCD=0x8+1x4+1x2+1x1=(7)10

(1101)2421 BCD=1x2+1x4+0x2+1x1=(7)10

最常用的有权码是8421 BCD码,由于其位权值是按基数2的幂增加的,这和二

进制数的位权值一致,所以有时也称8421 BCD码为自然数权码。


十进制数码 8421码 2421码

0 0000 0000

1 0001 0001

2 0010 0010

3 0011 0011

4 0100 0100

5 0101 1011

6 0110 1100

7 0111 1101

8 1000 1110

9 1001 1111


用BCD码表示十进制数

在BCD代码中,4位二进制代码仅表示1位十进制数,对一个多位的十进制数进行编码,需要有与十进制位数相同的几组BCD代码来表示,每组代码之间按十进制进位。

例如,用8421BCD码来表示十进制数863,则

(863)10=(1000 0110 0011)8421 BCD

如果用2421 BCD码来表示十进制数863,则

(863)10=(1110 1100 0011)2421 BCD

程序设计:输入任意一个十进制数,将其用2421 BCD码表示
(提示:类似于念数字)

七、写出输出内容

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
void OutPut(int data){
  printf("%d",data);
} 
void change1(int data){
  data=1;
  printf("11---");
  OutPut(data);//1
  printf("\n");
}
void change2(int *data){
  *data=1;
}
int change3(){  
  int data=1;
  return data;
}
int main(){
  int data;
  data=0;
  printf("0---");
  OutPut(data);//结果
  printf("\n");
  change1(data);
  printf("1---");
  OutPut(data);//结果
  printf("\n");
  change2(&data);
  printf("2---");
  OutPut(data);//结果
  printf("\n");
  int data1;
  data1=change3();
  printf("3---"); 
  OutPut(data1);//结果
  printf("\n");
}

八、遍历数组:用不同的方法遍历数组(至少三种)

#define N 10
#include <stdio.h>
int main(){
//相关定义
  int a[N];
  int *p;
  p=a;
int i;
//初始化数组
  for(i=0;i<N;i++){
    a[i]=i;
  }
  printf("\n");
//遍历方法一
printf("\n");
//遍历方法二
printf("\n");
//遍历方法三
printf("\n");
}
相关文章
|
6月前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
6月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
44 1
|
11月前
2.C语言题目---字符串左旋
2.C语言题目---字符串左旋
76 1
|
1月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
11月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
60 1
|
3月前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
45 1
|
6月前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
5月前
|
C语言
c语言循环题目
c语言循环题目
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)