《C语言程序设计》复习纲要B
一、单选题
1. 以下对C语言的表述错误的是( )。
A. C语言适合于数据管理领域 B. C语言是一种结构化语言
编程语言有哪些类型C. C语言适合编写操作系统 D. C语言是伴随UNIX系统发展起来的
2. C语言的数据类型中以*表示( )数据类型。
A. 空类型 B. 结构体
C. 指针 D. 实型
3. 常数的书写格式决定了常数的类型和值,0x1011是( )。
A. 8进制整型常量 B. 字符常量
C. 16进制整型常数 D. 2进制整型常数
4. 表达式 18/4*sqrt(4.0)/8值的数据类型是( )。
A. int B. float
C. double D. 不确定
5. 下列不可作为C语言赋值语句的是( )。
A. x=3,y=5; B. a=b=6;
C. i--; D. y=int(x)
6. 以下程序运行后,输出结果是( )。
main( )
{
char *s="abcde";
s+=2;
printf("%ld\n",s);
}
A. cde B. 字符c的ASCII码值
C. 字符c的地址 D. 出错
7. 以下说法中正确的是( )。
A. #define和printf都是C语句 B. #define是C语句,而printf不是
C. printf是C语句,但#define不是 D. #define和printf都不是C语句
8. 下面程序的输出是( )。
main( )
{ int y=9;
for( ; y>0; y--)
{ if (y%3==0)
{ printf("%d", --y);continue;}
}
}
A. 741 B. 852
C. 963 D. 875421
9. 循环语句不包括( )。
A. for; B. case;
C. goto; D. continue;
10. 设已有定义: char *st="how are you"; 下列程序段中正确的是( )。
A. char a[11], *p; strcpy(p=a+1,&st[4]);
B. char a[11]; strcpy(++a, st);
C. char a[11]; strcpy(a, st);
D. char a[], *p; strcpy(p=&a[1],st+2);
二、多选题
1. 以下对C语言的表述正确的是( )。
A. C语言适合于数据管理领域 B. C语言是一种结构化语言
C. C语言适合编写操作系统 D. C语言是伴随UNIX系统发展起来的
2. 下列说法正确的是( )。
A. C程序由函数组成 B. 主函数调用其他函数
C. 其他函数相互调用 D. 其他函数调用主函数
3. if语句有哪三种形式?( )
A. if(表达式)语句;
B. if(表达式)语句1; else 语句 2;
C. if(表达式)语句1; 语句2;
D. if(表达式1)语句1; if(表达式2) 语句2; if(表达式3) 语句3;
4. 常用的三种循环式是( )。
A. while循环 B. do-while 循环
C. for循环 D. goto循环
5. 以下说法中不正确的是( )。
A. C语言程序总是从第一个的函数开始执行
B. C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main()函数开始执行
D. C语言程序中的main()函数必须放在程序的开始部分
6. 下列哪些可称为函数的嵌套调用?( )
A. 函数对自身的直接调用 B. 函数对自身的间接调用
C. 函数对别的函数的调用 D. 函数被主函数调用
7. 如果想在函数中改变实参数组的元素值,则( )。
A. 形参实参都用数组名 B. 实参用数组名,形参用指针变量
C. 实参用指针变量,形参用数组名 D. 形参和实参都用指针变量
8. 常见指针运算有( )。
A. 赋值 B. 加减一个整数
C. 两个指针变量相减 D. 两个指针变量比较
三、填空题
1. C程序也要通过___________、___________才能执行。
2. 十进制数112.375转换成十六进制数为___________。
3. 以下程序的输出结果是___________。
main()
{ int x=0;
sub(&x,8,1);
printf("%d\n",x);
}
sub(int *a,int n,int k)
{ if(k<=n) sub(a,n/2,2*k);
*a+=k;
}
4. int *a()返回值为一个整型的___________变量。
5. *(p+4)访问的是数组中第___________个元素。
6. 表达式5&3的值是___________。
四、判断题)
1. scanf和printf为C语言本身的输入输出语句。( )
2 整型常量可用十进制整数、八进制整数、二进制整数和十六进制整数表示。( )
3. 不同类型的数据可以直接进行运算。( )
4. i++和++i相同,都表示给i加1。( )
5. 条件运算符的结合方向是自左向右的。( )
6. 循环结构是结构化程序设计的基本结构之一。( )
7. for语句中的三个表达式都可省略。( )
8. 一个循环体包含一个循环体称为循环嵌套。( )
9. 指针变量可以实现使本身的值改变。( )
10. 函数指针是指函数的入口地址。( )
五、简答题
1. 如输入的数据与输出的类型不一致时,虽然编译能够通过,但结果将不正确。试修改:
main()
{
int a;
printf("input a number\n");
scanf("%d",&a);
printf("%ld",a);
}
2. while语句的语义是什么?
3. 试写一个循环嵌套的例子。
4. C语言中常用的文件检测函数有哪些?
5. C语言提供了哪六种位运算符?
六、计算题
用scanf输入三角形的三边长,求三角形的面积,要求判断输入错误。
《C语言程序设计》复习纲要B答案
一、单项选择题
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | B | A | B | A | D | C | C | C | C | B |
二、多项选择题
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
答案 | ABC | BCD | AB | BCD | ACD | ABCD | ABCD | ABC |
三、填空题
(1)编译,连接 (2)70.6 (3)7
(4)指针 (5)5 (6)1
四、判断题
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | F | F | T | F | T | T | F | F | T | T |
五、简答题
1 由于输入数据类型为整型,而输出语句的格式串中说明为长整型,因此输出结果和输入数据不符。如改动程序如下:
main()
{
long a;
printf("input a long integer\n");
scanf("%ld",&a);
printf("%ld",a);
}
2 while语句的语义是:计算表达式的值,当值为真 (非0) 时, 执行循环体语句。
3 main ( )
{ int i, j, k;
printf("i j k\n");
for (i=0; i<2; i++)
for(j=0; j<2; j++)
for(k=0; k<2; k++)
printf(“%d %d %d\n", i, j, k);
};
4 C语言中常用的文件检测函数有以下几个。
1 文件结束检测函数feof函数
调用格式:feof(文件指针);
功能:判断文件是否处于文件结束位置,如文件结束,则返回值为1,否则为0。
2 读写文件出错检测函数
ferror函数调用格式:
ferror(文件指针);
功能:检查文件在用各种输入输出函数进行读写时是否出错。如ferror返回值为0表示未出错,否则表示有错。
3 文件出错标志和文件结束标志置0函数
clearerr函数调用格式:
clearerr(文件指针);
功能:本函数用于清除出错标志和文件结束标志,使它们为0值。
5 按位与: & 按位或: | 按位异或: ^ 取反: ~ 左移: << 右移: >>
六、计算题
1 #include <stdio.h>
#include<math.h>
void main(void)
{
float a,b,c;
float s,area;
scanf("%f,%f,%f",&a,&b,&c);
if (a+b>c&&a+c>b&&b+c>a)
{
s=0.5*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
else printf("it is not a trilaterral\n");
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论