C_11练习题

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。)

  1. 以下叙述中正确的是()

A.C语言不是一种高级语言
B.C语言不用编译就能被计算机执行
C.C语言能够直接访问物理地址和进行位操作
D.C语言具有其他语言的一切优点

2,以下哪项不属于C语言的保留字()

A. int
B. main
C. void
D. return

3.C语言是一种结构化语言,是因为()

A.用C语言编写的程序层次清晰明了,易于调试和维护
B.C语言具有结构化的控制语句,如if语句、while语句、for语句等
C.C语言用函数作为程序的模块单位,以函数为模块组织程序
D.C语言用函数作为程序的模块单位,以函数为模块组织程序,还具有结构化的控制语句。如if语句、while语句、for语句等

4.以下选项中,能用做数据常量的是()。

A. ol115
B.0118
C. 1.5e1.5
D. 115L

5.设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是()

A. ‘a’&&‘b’
B. a<=b
C. allb+c&&b-c
D. !((a

6.设变量n为Noat型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是()

A. n=(n100+0.5)/100.0
B.m=n
100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0

7.以下关于运算符优先级顺序的描述中正确的是()

A.关系运算符<算术运算符<赋值运算符
B.赋值运算符<关系运算符<算术运算符
C.算术运算符<关系运算符<赋值运算符
D.赋值运算符<算术运算符<关系运算符

8.语句printi(“%d”,(a=2)&&(b=-2));的输出结果是()。

A.无输出
B.结果不确定
C.-1
D.1

9.下列不是C语言所表现出来的不足之处

A.数据类型检查不严格
B.表达式容易出现二义性
C.可移植性差
D.不能自动检查数据越界

10,下列程序的功能是:给:输入数据后计算半径为r的圆面积s。程序在编译时出错,原因是()。
#include
int main (){
int r; float s;
scanf(“%d”, &r);
s = PIrr;printf(“s=%An”, s);
return 0;
}

A.注释语句书写位置错误
B.存放半径的变量r不应该定义为整型
C.输出语句中格式描述符非法
D.计算圆面积的赋值语句中使用了非法变量

11.下而程序运行时如果输入“-123362<回车>”,则输出结果是(

#include 

int main() {
    int t, a, b, i;

    for (i = 1; i <= 3; i++) {
        printf("Enter two integers: ");
        scanf("%d %d", &a, &b);

        if (a > b) {
            t = a - b;
        } else if (a == b) {
            t = 1;
        } else {
            t = b - a;
        }

        printf("%d\n", t);
    }

    return 0;
}

A.304
B.314
C.134
D.316

  1. 下面的这个循环的循环次数是(for(int i=0,j=10; i=j=10; i++j–)

A.语法错误,不能执行
B.无限次
C. 10
D.1

13.假定double类型变量占用8个字节,且数组定义如下,则数组length在内在中所占字节数是double length [10];

A.0
B. 10
C.80
D. 160

14.以下对二维数组a的正确说明是()

A. int a[3]0;
B. float a(3,4);
C. double a[1][4];
D. float a(3)(4);

15.以下描述错误的是()

A.字符串数组中可以存放ASCI字符集中的任何字符
B.字符串数组的字符可以整体输入输出
C.字符串数组中只能存放键盘上可以找到的字符
D.不可以用关系运算符对数组中的字符串进行比较

16,下列变量中,哪类变量的生存期和作用域是不一致的()。

A. 自动变量
B.外部变量
C.静态局部变量
D.寄存器变量

  1. 以下不正确的说法是()。

A.实参可以是常量、变量或表达式
B.实参可以是任何类型
C.形参可以是常量、变量或表达式
D.形参应与对应的实参类型一致

18,若已定义: int a[9], *p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是

A. p+1
B. a+1
C. a++
D. ++p

19,下列选项中不会引起二义性的宏定义是()。

A.#define POWER(x) xx
B.#define POWER(x) (x)
(x)
C. #define POWER(x)(xx)
D. #define POWER(x) ((x)
(x))

  1. 以下程序的输出结果是()
#include 

int main() {
    char a[] = "programming";
    char b[] = "language";
    char *pl = a, *p2 = b;
    int i;

    for (i = 0; i < 7; i++) {
        if (*(pl + i) == *(p2 + i)) {
            printf("%c", *(pl + i));
        }
    }

    return 0;
}

A. gm
B. rg
C. or
D. ga

二、程序阅读题(本大题共5小题,每小题6分,共30分。请将程序的运行结构填写在答题纸的相应位置上。)
1_________

#include 

int main() {
    int i;
    char str[] = "university";

    for (i = 0; i <= 3; i++) {
        switch (i) {
            case 0:
                printf("%c ", str[i]);
                break;
            case 1:
                printf("%c\n", str[i]);
                break;
            case 2:
                printf("%s\n", str);
                break;
            default:
                printf("***In");
        }
    }

    return 0;
}

2_______

#include 

int main() {
    int i;
    char str[] = "university";

    for (i = 0; i <= 3; i++) {
        switch (i) {
            case 0:
                printf("%c ", str[i]);
                break;
            case 1:
                printf("%c\n", str[i]);
                break;
            case 2:
                printf("%s\n", str);
                break;
            default:
                printf("***In");
        }
    }

    return 0;
}

3_______

#include 

int main() {
    int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int m, k, t;

    for (m = 0; m < 3; m++) {
        for (k = 0; k <= m; k++) {
            if ((m + k) % 2) {
                t = a[m][k];
                a[m][k] = a[k][m];
                a[k][m] = t;
            }
        }
    }

    for (m = 0; m < 3; m++) {
        for (k = 0; k < 3; k++) {
            printf("%d ", a[m][k]);
        }
        printf("\n");
    }

    return 0;
}

4_______

#include "stdio.h"
void main()
{int a,b,t;
t = 0;
scanf("%d,%d",&a,&b);
if(a>b) t=a;a= b;b=t;
printf("b=%d",b);
}

5______`

#include 
void ast(int x,int y,int *cp,int *dp)
{*cp=x*y; *dp=x/y;}
void main(){
int a,b,c,d;
a=4; b=3;
ast(a,b,&c,&d);
printf("%d,%d\n",c,d);}


三、程序填空题(共35分。请将答案填写在答题纸的相应位置上。)
1,下列程序先消除输入字符串的前后空格,再判断是否是“回文”(即字符串正读和倒读都是一样),若是则输出 YES,否则输出 NO。

#include 
#include 
int main(){
char s[80], ch, *p, *q;
int i, j, n;
gets(s);
p=s;
while (*p==')_________;
n = strlen(s);
q=__________;
while ( *q =='')_________;
while(___________&& *p==*q){
p++;
_________;
}
if (p<q)
	printf("NO\n");
else
	printf("YESn");
	return 0;
	}

2.本程序的功能是将字符串a的所有字符传送到字符串b中,要求每传送三个字符后再存放一个空格。

#include 
int main(){
int i,k=0;
char a[80], b[80], *p;
p=a;
gets(p);
while(*p)
{ for(i=1;___________;ip++, k++,i++) b[k]=*p;
	if(__________) (bk='';k++);}
}
b[k]='\0'
;puts(b);
return 0;

四、编程题(本大题共3小题,每小题15分,共45分。请在答题纸的相应位置上作答。)

  1. 给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),编写程序检验它们能否构成三角形。若这3个点不能构成三角形,则输出"Impossible";若可以,则输出该三角形的周长和面积。

2.编写函数int stremp(char pl,charp2):实现两个字符串的比较。

3,某大学正在举行歌唱比赛,现有10位评委为学生评分,评分采用百分制。按如下规则计算学生的最终得分:先计算评委的分数之和,减去分数中的最高分与最低分,再除以8得到学生的成绩。请输入1位同学的10个分数,计算和输出学生的最终得分。下面给出了main0函数,请将其他函数补充完整,即写出input、ssum、smax与smin函数的定义。

#include 
int main(){ 
int score[10],max,min,sum;
 float aver;input(score, 10);//输入 10个评委的评分sum=ssum(score,10);//计算 10个评委的评分之和
 max=smax(score,10);//计算最高分min=smin(score,10);//计算最低分
 aver-(sum-max-min)*1.0/(10-2);//计算学生的最终得分
 printf("%fn",aver);//输出学生的最终得分return 0;

你可能感兴趣的:(2模拟0_C,c语言,算法,开发语言,河北专升本)