IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【2012年湖南大学829考研试题】 -> 正文阅读

[C++知识库]【2012年湖南大学829考研试题】

2012年湖南大学招收硕士研究生入学考试试题

一、单项选择题 (20*1=20分)

  1. 下列合法的C语言标识符是 (A)
    A、file. bak
    B、num(5)
    C、$123b
    D、break

  2. 若 i=5,当 执行 printf("%d",-i++);后。a的值为 ( C)
    A、6
    B、-6
    C、-5
    D、5

  3. 若 a=10,当执行运算 a+=a-=a*a;后:a的值为 (D)
    A、10
    B、100
    C、-90
    D、-180

  4. 已知int x,y; 执行逗号表达式y=(x=4*5,x*5),x+25;后,y的结果为多少 (B)
    A、20
    B、100
    C、125
    D、45

  5. 若有语句:

int i=0;
switch(i)
{
    case 0: i+=1;
    case 1: i+=1;
    case 2: i+=1;
    default:i+=1;
}

执行上面的语句后,变量的正确结果为多少? (D)
A、1
B、2
C、3
D、4

  1. 若有语句:
char s[15];
scanf("%s" ,s);
printf("%s",s);

当从键盘上输入的值为: Hello World时,下列输出的结果中,正确的是 (A)
A、Hello
B、Hello World
C、H
D、d

scanf读取到空格停止

  1. 设整型变量a. b的值分别为2.3,当执行运算b+=(++a)+(++a)后,b的值为 ( C)
    A、9
    B、10
    C、11
    D、12

  2. 设整型变量 i 的值为5,则执行表达式 i+++i 后 ,i 的值为 (B) (看编译器)
    A、5
    B、6
    C、7
    D、表达式不正确

  3. 设有定义: int k=1,m= 2;float f=7;测以下选项中错误的表达式是 (C)
    A、k=k>=k
    B、-k++
    C、k%int(f)
    D、k>=f>=m

  4. 没有定义: int a=2,b=3,c=4;以下下选项中值为0的表达式是 (A)
    A 、(!a == 1)&&(!b == 0)
    B、(a)
    C、a&&b
    D、a||(b+b)&&(c-a)

  5. 以下4个选项中,不能看作一条语句的是 (D)
    A、{;}
    B、a=0,b=0,c=0;
    C、if (a>0);
    D、if ((b==0)m=1;n=2;

  6. 已有定义: int x=3,y=4,z= 5;则表达式!(x+y)+z-1&&y+z/2的值是 (D)
    A、6
    B、0
    C、2
    D、1

  7. int x=1,y=1;表达式(!xlly--)的值是 (B)
    A、0
    B、1
    C、2
    D、-1

  8. 以下叙述正确的是 (D)
    A、do-while 语句构成的循环不能用其他语句构成的循环代替。
    B、do -while语句构成的循环只能用break语句退出。
    C、用do-while语句构成的循环,在while后的表达式为非零时循环结束。
    D、用do-while语句构成的循环,在while后的表达式为零时结束循环。

  9. 执行语句: for(i=1;i++<4;);后,变量 i 的值是 ?
    A、3
    B、4
    C、5
    D、不定

  10. 有关函数参数,下列说法正确的是 ( C)
    A、实参可以将数据传给形参;
    B、实参和形参是不同的变量;
    C、形参可以将数据传给实参;
    D、实参和形参必须个数相等,类型一致。

  11. 定义函数时,若函数的类型缺省,则函数的默认类型是 (D)
    A、char
    B、void
    C、float
    D、int

  12. 已知: char s1[4]= "128” ,char * ptr;则执行以下语句后的输出为 (A)

ptr = s1;
printf(" %c\n",*(ptr+ 2));

A.字符 ’ 8 ‘
B、字符 ’ 1 ’
C、字符 ’ 2 ’ 的地址
D、不确定

  1. 下列数据中属于字符串常量的是 (B)
    A、0
    B、"0”
    C、‘0’
    D、‘10’

  2. 下列语句中,将f定义为文件类型指针的语句是 (B)
    A、FILE f;
    B、FILE *f;
    C、file f;
    D、file *f;

二、判断题:( 15*2=30分)

  1. C语言是一种计算机高级语言。√
  2. C语言不允许直接访问物理地址,不能进行位操作。×
  3. C语言是面向对象的程序设计语言。×
  4. C程序要通过编译,链接才能得到可执行的目标程序。√
  5. 每一个C程序都必须有一个主函数main()。×
  6. C语言允许有空函数。√
  7. C程序书写格式规定一行只能写一 条语句。×
  8. c程序的每一条语句都给定一个行号。×
  9. C语言的每个语句的最后必须有一个分号。√
  10. C语言本身没有输入输出语句。√
  11. C语言可用来编写应用软件,也可用来编写系统软件。√
  12. TurboC是在微机上广泛使用的编译程序。√
  13. C语言的数据结构是以数据类型形式出现的。√
  14. 空类型不是C语言的数据类型。×
  15. C语言中数据不分常量和变量。×

三、简答题( 15*2=30分)

  1. C语言的基本数据类型有哪些?允许自定义数据类型吗?如果允许,可以添加哪些数据类型?请举例说明如果不允许,请说明原因。

整型,字符型,浮点型
允许
可添加结构体,共用体,枚举类型等等

struct student
{
    int num;
    char name[20]; 
}stu1;
  1. C语言的分支语句有几种? 请分别写出C语言分支结构的基本形式,并说明他们的主要区别。

主要有 if 和 switch 两种,有以下形式:

if(表达式1)
    {
        if(表达式2)
        {
            语句1}
    }
    else
    {
        语句2} (5) switch(表达式):
     case1:语句1break;
     case2:语句2break;
     ……
     default:语句n;break; 

区别:switch 适合处理判断分支较多的情况下(代码可读性好),
而 if 适合处理判断分支较少的情况下(反之代码可读性差,容易出现漏判或重复判断)。

四、程序理解题。阅读下面的程序,写出程序的运行结果( 3*10=30分)

#include<stdio.h>
void main()
{
    int i,j,x=0;
    for(i=0;i<2;i++)
    {
       x++;
       for(j=0;j<=3;j++)
       {
          if(j%2)
            continue;
          x++;
       }
       x++ ;
    }
    printf("x=%d\n",x);//8
}
#include<stdio. h>
void main()
{
    int x=1,y=0,a=0,b=0;
    switch(x)
    {
       case 1:
       switch(y)
       (
          case 0: a++ ;break;
          case 1: b++;break;
       }
       case 2: a++;b++;break;
       case 3: a++;b++;
    }
    printf( "a=%d,b=%d\n",a,b);//a=2.b=1
}
#include<stdio. h>
void addsub(int m,int n);
int main()
{
    int a-10,b=15;
    addsub(a,b);// 传值,形参对实参无影响
    printf("a=%d, b=%d)n",a,b);//a=10,b=15
}

void addsub(int m, int n)
{
    int temp = m;
    m = m*n;
    n = temp - n;
}
#include<stdio.h>
int i=0;
int fun(int n)
{
    static int a = 2;
    a++; ,
    return a+n;
}
int main()
{
    int k=5;
    {
       int i-2;
       k+=fun(i);
    }
    k+=fun(i);
    printf("k=%d\n" ,k);//k=14
}
#include<stdio.h>
int main()
{
    int i,a[4] = {2,4,6,8},*pa;
    pa = a;
    for(i=0;i<4;i++)
    {
       *pa*=*pa;
       printf("a[%d]=%d\n" ,i,*pa);//a[0]=4 a[1]=16 a[2]=36 a[3]=64
       pa++;
    }
}
#include<stdio.h>
int sum(int array[],int len);
int main( )
{
    static int a[5]={1,2,3,4,5},result;
    result=sum(a,5);
    printf("result=%d\n" ,result);//result=15
}
int sum(int array[],int len)
{
    int sum = 0;
    for(int i=0;i<len;i++)
       sum = sum+array[i];
    return sum;
}

五、编程题。完成下列各程序中的函数定义(请勿修改主函数main中的语句)( 4*10=40分)

  1. 请编写函数void fun(int a,int b,long *c)的定义,其功能是将两个两位数的正整数 a,b 合并成一个整数放在 c 中。合并的方式是将 a 数的个位和十位数依次放在C数干位和十位上,b 数的十位和个位数一次放在 c 数的个位和百位上。
    例如: a=37,b=62,合并和的数: c=7236
#include<iostream.h>
using namespace std;
void fun(int a,int b,long *c);
void main()
{
    int a,b;
    long c;
    cout<<"Input a,b;"<<endl;
    cin>>a>>b;
    fun(a,b, &c);/*函数调用*/
    cout<<"The result is: \n"<<c<<endl;
}

【仅供参考】

void fun(int a, int b, long* c)
{
    *c = 0;
    *c += b / 10;//把b的十位放到c的个位
    *c += b % 10 * 100;//把b的个位放到c的百位
    *c += a / 10 * 10;//把a的十位放到c的十位
    *c += a % 10 * 1000;//把a的个位放到c的千位
}
  1. 请编写函数long Fibo(int n)的定义,该函数返回 n 的 Fibonacci 数,规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为其前面两个数之和,即: F(n)=F(n-1)+F(n-2).
    请使用递归算法实现该函数。如n=8 时,结果为21.
#include<stdio.h>
long Fibo(int n);
void main( )
{
    int n;
    scanf("%d",&n);
    long f = Fibo(n);
    printf("f=%ld\n",f);
}

【仅供参考】

long Fibo(int n)
{
    long g;
    if (n == 1 || n == 2)
        g = 1;
    else
        g = Fibo(n - 1) + Fibo(n - 2);
    return g;
}
  1. 请编写函数void fun(int(*s)[10],int *b,int *n,int mm,int nn);的定义,该函数的功能是将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。例如:若二维数组中的数据为
    33333333
    44444444
    55555555
    则一维数组中的内容为: 33 44 55 33 44 55 33 44 55 33 44 55.
#include<stdio.h>
void fun(int(*s)[18],int*b,int*n,int mm,int nn);
void main()
{
    int w[10][10]={{33,33,33,33},{44,44,44,44},
                   {55,55,55,55}};
    int a[100]= {0},n=0,i,j;
    printf("The matrix:\n");
    for(i=0;i<3;i++)
    {
       for(j=0;j<4;j++)
          printf("%d\t" ,w[i][j]);
       printf("\n");
    }
    fun(w,a,&n,3,4);
    printf("\nThe A array:\n");
    for(i=0;i<n;i++)
       printf("%d\t" ,a[i]);
}

【仅供参考】

void fun(int(*s)[10], int* b, int* n, int mm, int nn)
{
    int i, j;
    for (i = 0; i < nn; i++)
    {
        for (j = 0; j < mm; j++)
        {
            *(b++) = *(s[j] + i);
            (*n)++;
        }
    }
}
  1. 请编写函教int fun(char*str)该函数的功能星判断字符事是否为回文,若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO,回文是指顺读和倒读都是一样的字符串。例如:字符串LEVEL是回文,而字符串123312不是回文。
#include<stdio.h>
#define N 80
int fun(char *str);
void main()
{
    char s[N];
    printf("Enter a string:\n");
    gets(s);
    printf("\n");
    puts(s);
    if(fun(s))
       printf("YES\n");
    else
       printf("NO\n");
}

【仅供参考】

int fun(char* str)
{
    if (!str)
        return 0;
    char* left = str;
    char* right = str;
    while (*right)
    {
        right++;
    }
    right--;
    while (left < right)
    {
        if (*left != *right)
        {
            return 0;
        }
        left++;
        right--;
    }
    return 1;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-05 10:37:43  更:2021-09-05 10:39:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:14:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码