3亿多的题库,支持文图片,语音搜题,包含国家开放大广东开放大云南开放大北京开放大上海开放大江苏开放大超青奥鹏等等多个平台题库,考试作业必备神器。

C语言及程序设计复习题
第一部分( ):
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A.大写字母 B.连接符 C.数字字符 D.下划线
答案:B
下面关于计算机正确的是( )。
A.计算机由硬件系统和软件系统两部分构成
B.只要有硬件系统,计算机就能工作
C.计算机只能处理文本信息
D.计算机只能处理计算问题
答案:A
( )是c语言提供的合法的数据类型关键字。
A.In B.long C.har D.ineger
答案:B
面向过程的高级语言包括( )。
A.,JAVA B.,BASIC C.++.NE,ASP D.,VB
答案:B
软件按功能可以分为: 应用软系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。
A.编译程序 B. 操作系统 C.教务管理系统 D.汇编程序
答案:C
以下选项中关于C语言常量的叙述错误的是()。
A.所谓常量,是指在程序运行过程中,其值不能被改变的量
B.常量分为整型常实型常字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.经常被使用的变量可以定义成常量
答案:D
下面描述中正确的是( )。
A.语言提供了专门的输入/输出语句
B.语言调用输入/输出函数时需要使用include命令包含头文件
C.语言可以直接使用输入/输出函数
D.输入/输出函数所在的头文件是sdlib.h
答案:B
假设有char型变量c1,c2,执行下面程序段:
c1=gachar();
c2=gachar();
prin(“c1=%c,c2=%c\n”,c1,c2);
如果c1和c2的值分别为字符a和b,则从键盘正确的输入方式是( )。
<回车> B.<回车>b<回车>
C.<空格>b<回车> D.<>b<回车>
答案:A
下面描述中正确的是( )。
A.prin()函数的输出列表项只允许是变量
B.prin()函数的输出列表项可以是常变量以及表达式
C.prin()函数输出列表项也可以是另一个prin()函数
D.prin()函数的输出列表项之间用空格分隔
答案:B
假设有:in a,b; scan("%d,%d",&a,&b);
为了得到a和b分别为10和20,从键盘正确输入数据的是( )。
A.10<空格>20<回车> B.10<回车>20<回车>
C.10,20<回车> D.10,20,<回车>
答案:C
下面说法正确的是( )。
A.表达式计算时要考虑运算符的优先级和结合性
B.表达式计算需要考虑运算符的优先级
C.表达式计算时需要考虑运算符的结合性
D.括号( )可以改变运算符的优先级
答案:A
下面说法正确的是( )。
A.负数参与“/”和“%”运算时,其结果与C89或C99的标准有关
B.语言的“/”和“%”运算可以写成5/0或5%0的形式
C.赋值运算要求他的左操作数可以是变常量或另一个表达式
D.表达式(x=a>b)&&(y=c>d)是错误的写法
答案:A
假设有下面程序段:in a;loa b; b=a=4.5;
下面错误的描述是( )。
A.变量a的值是4 B.变量b的是4.0
C. 赋值表达式a=4.5的结果值是4 D.变量b的值是4.5
答案:D
假设a,b,c,x,y均为in型,下面说法正确的是( )。
A.表达式“a+=2”等价于表达式“a=a+2”
B.表达式“a*=b+c”等价于表达式“a=a*b+c”
C.表达式“y=x++”等价于表达式“x++,y=x”
D.表达式“y=x++”等价于表达式“y=x,x++”
答案:D
逻辑运算符两侧运算对象的数据( )。
A.只能是0或1 B.只能是0或非0正数
C.只能是整型或字符型数据 D.可以是任何类型的数据
答案:D
sizeo(loa)是( )。
A.一个双精度型表达式 B. 一个整型表达式
C.一个函数调用 D.一个不合法的表达式
答案:B
结构化程序的实现由( )组成程序逻辑。
A. 顺序结构 B. 分支结构
C. 循环结构 D. 顺序结分支结构和循环结构
答案:D
假设变量a为整型量,语句i (a!=0);和语句i(a);相比较,正确答案( )。
A. 两者作用不同 B. 两者作用等价
C. 两者作用相反 D. i(a)语法错
答案:B
为了避免在嵌套的条件语句i-else中产生二义性,C语言规定:else子句总是与( )。
A.缩排位置相同的i配对
B. 其之前最近且不带else的i配对
C. 其之前最近的i配对
D.第一个i配对
答案:B
阅读下面程序:该程序( )。
#include "sdio.h"
main()
{
in x=-10, y=5, z=0;
i (x=y+z)
prin("***\n" );
else
prin("$$$\n");
}
A. 有语法错不能通过编译
B. 输出***
C. 可以通过编译但不能通过连接
D. 输出$$$
答案:B
下面说法错误的是( )。
A. 当条件满足时重复执行某一段程序( )就是循环
B.循环体只有一条语句时,可以不写成复合语句形式
C.while语or语句可以相互转换
D.o...while语句可以实现前判断结构
答案:D
下面说法错误的是( )。
A.reak语句可退出循环体而执行该循环语句后面的语句
B.reak语句可以出现在swich语句和循环语句中
C.oninue语句只能出现在循环结构中
D.goo语句即可以从函数体跳出,也可以跳入函数体中
答案:D
以下不是无限循环的是( )。
A. or(y=6,x=1;x<y;x+=2,y-=2) ; B. or( ; ; ) ;
C. while(-5) x++; D. or(i=20; ; i--) sum+=i;
答案:A
对以下说明语句的正确理解是( )。
in a[10]={6,7,8,9,10};
将5个初值依次赋给a[1]至a[5]
B. 将5个初值依次赋给a[0]至a[4]
将5个初值依次赋给a[6]至a[10]
因为数组与初值的个数不相同,所以此语句不正确
答案:B
判断字符串a和b是否相等,应当使用( )。
A. a==b B. a=b C. srcpy(a,b) D. srcmp(a,b)
答案:D
26.在c语言的函数调用过程中,如果函数unA调用了函数unB,函数unB有调用了函数unA,则( )。
A. 称为函数的直接递归 B. 称为函数的间接递归
C. 称为函数的递归定义 D. c语言不允许这样的递归形式
答案:B
27.若有说明:in a=2, *p=&a, *q=p;,则以下非法的赋值语句是( )。
A. p=q; B. *p=*q; C. a=*q; D. q=a;
答案:D
27.若有定义:in a[2][3];,则以下对a数组元素地址的正确表示为( )。
A. *(a+1) B. *(a[1]+2)
C. a[1]+3 D. a[0][0]
答案:A
29.以下对C语言中共用体类型数据的叙述正确的是( )。
可以对共用体变量名直接赋值
共用体类型定义中不能出现结构体类型的成员
一个共用体变量中不能同时存放其所有成员
一个共用体变量中可以同时存放其所有成员
答案:A
30.若用open打开一个新的二进制文件,要求文件既能读又能写,则应选用的文件方式字符串是( )。
A."wb+" B."r+" C."rb+" D."+"
答案:A
第二部分( ):
1.判断一个4位数是否为回文数( )?
答案:
#include<sdio.h>
in main()
{ in i;
in a,b,c,d;
prin("....\n");
or(i=1000;i<=9999;i++)
{ a=i/1000;
b=i%10;
c=(i/100)%10;
d=(i%100)/10;
i(a==b&&c==d)
prin("%6d",i); }
}
2.输入正整数n,输出n行n列的空心四边形图案。以下是n=4的图案
* * * *
* *
* *
* * * *
答:
#include <sdio.h>
in main()
{
in i,j,n;
prin("请输入 n");
scan("%d",&n);
or(i=1; i<=n; i++)
{
or(j=1; j<=n; j++)
i(i==1 || j==1 || i==n || j==n)
prin("*");
else
prin(" ");
prin("\n");
}
reurn 0;
}
3.有一个分数序列:2/1,3/2,5/3,8/5,13/8,…..编程求此序列的前20项之和。
答:
#include <sdio.h>
in main()
{
in a,b,c,i;
double sum=0;
a=2,b=1;
or(i=0;i<20;i++){
sum+=1.0*a/b;
c=b;
b=a;
a=a+c;
}
prin("%.2l\n",sum);
reurn 0;
}
4.从键盘上输入一个百分制成绩S,按下列原则输出其等级:若成绩大于或等于90,则等级为A;若成绩大于等于80,小于90,则等级为B;若成绩大于等于70,小于80,则等级为C;若成绩大于等于60,小于70,则等级为D;若成绩小于60,则等级为E。
答:
#include <sdio.h>
void main()
{
in daa;
char grade;
prin("Please ener he score:");
scan("%d”, &daa);
swich(daa/10) {
case 10:
case 9 : grade=’A’; break;
case 8: grade=’B’; break;
case 7: grade=’C’; break;
case 6: grade=’D’; break;
deaul: grade=’E’;
}
prin("he grade is %c”,grade);
}
第三部分( ):
说明算法可以采用哪几种控制结构组合。
答:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般可以用顺选循环三种基本控制结构,通过顺序或嵌套组合而成。
c语言程序的基本单位是什么?它的结构又如何?
答:函数是c语言程序的基本模块单元。
任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如下:[函数类型] 函数名(函数参数表)
{ 说明语句部分;
执行语句部分;
}
分析下面程序的执行过程,给出输出结果。
main( )
{
in x=2,y=3,z=4,a=0;
a = x<z?y:z;
prin("%d",a);
}
答:3。a = x<z?y:z判断方式为: 若x小于z则将a赋值y;否则,则将a赋值z,题目中x的值为2,z的值为4,x小于z,因此将a赋值3。
分析下面程序的执行过程,给出输入55时的输出结果。
main( )
{ in a;
in b=33;
scan("%d",&a);
i(a>50)prin("%d",b);
i(a>40)prin("%d",a);
i(a>30)prin("%d",a);
}
答:335555
a=55,a大于50于是执行prin("%d",b),输出b的值,b的值为33,;
接着a大于40,输出a的值,a的值为55;
最后a大于30,输出a的值,a的值为55;
故输出为335555
分析下面程序的执行过程,若键盘输入为5,给出输出结果。
main( )
{ in x=1,a=0,b=0;
swich(x){
case 0:b++;
case 1:a++;
case 2:a++;
b++;
}
prin("a=%d, b=%d",a,b);
}
=2, b=1
分析下面程序的执行过程,给出结果说明break和coninue的区别。
main( )
{ in a=1,b;
or(b=l;b<10;b++)
{ i(b < 7)
{ a = 1;
coninue;
}
i(b == 8) a++;
i(b > 8) break;
a++;
}
prin("%d\n",a);
}
答:4
分析下面程序的执行过程,给出输出结果。
main( )
{ in a=10 ;
i(a++>10)
prin("%d\n",++a);
else
prin("%d\n",a--);
}
答:10
分析下面程序的执行过程,给出输出结果。
main( )
{ in i=0,s=0;
do{
i(i%2)
{i++; coninue;}
i++;
s+=i
}while(i<7)
prin("%d\n",s);
}
;
答:16
微信扫码添加好友
如二维码无法识别,可拨打 13662661040 咨询。