C语言模拟试卷2(带答案)
国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析)

国家二级C语言机试(选择题)模拟试卷107(题后含答案及解析) 题型有:1. 选择题选择题1.下列选项中不属于结构化程序设计原则的是( )。
A.可封装B.自顶向下C.模块化D.逐步求精正确答案:A解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
知识模块:选择题2.有两个关系R和T如下:则由关系R得到关系T的操作是( )。
A.投影B.交C.选择D.并正确答案:A解析:从表图中可以看出,关系T是从关系R中选取一部分字段(A和C)及其值构成新的关系,是一种纵向操作产生新列,属于投影,正确选项为A。
知识模块:选择题3.有以下程序:#include <stdio.h>main( ){printf(″%d\n”,NULL);}程序运行后的输出结果是( )。
A.1B.变量无定义,输出不确定C.—1D.0正确答案:D解析:NULL为一个符号常量,对应的ASCⅡ码值为0,答案选D。
知识模块:选择题4.有以下程序:#include<stdio.h>#define f(x)x*x*xmain( ){int a=3,s,t;s=f(a+1);t=f((a+1));printf(″%d,%d\n″,s,t);}程序运行后的输出结果是( )。
A.10,64B.10,10D.64,64正确答案:A解析:C语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。
所以s=f(a+1)=a+1*a+1*a+1,t=f((a+1))=(a+1)*(a+1)*(a+1),所以有无括号的运算结果是不同的。
知识模块:选择题5.有以下程序:#include<stdio.h>int f(int x,int y){return((y—x) * x);}void main( ){int a=3,b=4,c=5,d;d=f(f(a,b),f(a,c));printf(″%d\n″,d);}程序运行后的输出结果是( )。
C语言模拟试卷及答案

《C语言程序设计》考试试卷(答案)一、填空题(每小空1分,共10分)1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。
2.一个C程序有且仅有一个main( )函数.3.C语言描述“x和y都大于或等于z"的表达式是x〉=z && y〉=z。
4.C语言可以用来实现循环的结构化语句是while、do while、for。
5.数组名表示数组在内存的首地址.6.int a=3,*p=&a;*p+2的值是5。
二、单项选择题(每小题2分,共70分)1._____是C语言合法的标识符。
(A)3_sy45 (B)su_m (C)@123 (D)3D642.一个程序的执行是从.(A)本程序的main函数开始,到main函数结束(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束.(C)本程序的main函数开始,到本程序文件的最后一个函数结束.(D)本程序文件的第一个函数开始,到main函数结束。
3.以下叙述正确的是。
(A)在C程序中,main函数必须位于程序的最前面.(B)C程序每行中只能写一条语句.(C)C语言本是没有输入输出语句。
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误.4.以下叙述不正确的是。
(A)逗号运算符的运算级最低。
(B)ABC和abc是两个不同的变量。
(C)若a和b类型相同,在执行a=b后,b的自身值不变。
(D)‘a’和“a”是完全等价的常量。
5.int x=3,y=2;则表达式x+=x*=y+8的值为。
(A)28 (B)30 (C)60(D)176.在c语言中,变量的隐含存储类别是。
(A)auto(B)static (C)extern (D)无存储类别7.执行下面两个语句后,输出的结果为_____。
char c1=98;printf(“%d %c”,c1,c1—32);(A)97 66 (B)98 b (C)b 66 (D)98 B8.执行下面语句后的结果为.y=10;x=y++;(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11 (D)x=11,y=109.char w;int x;float y;double z;则表达式w*x+z—y值的数据类型是。
二级C语言模拟题2018年(171)_真题(含答案与解析)-交互

二级C语言模拟题2018年(171)(总分100, 做题时间90分钟)选择题1.有以下程序#include<stdio.h>main(){int i, sum;for(i=1; i<6; i++)sum+=i;printf("%d\n", sum);}程序运行后的输出结果是______。
SSS_SINGLE_SELA 0B 随机值C 15D 16分值: 2答案:B[解析] sum没有初始化,为随机值,再加上若干值,仍为随机值。
答案选择B。
2.以下叙述中正确的是______。
SSS_SINGLE_SELA 如果根据算法需要使用无限循环(即通常所称的“死循环”),则只能使用while语句B 对于“for(表达式1;表达式2;表达式3)循环体”首先要计算表达式2的值,以便决定是否开始循环C 对于“for(表达式1;表达式2;表达式3)循环体”,只在个别情况下才能转换成while语句D 只要适当地修改代码,就可以将do-while与while相互转换分值: 2答案:D[解析] do-while与whlile可以相互转换,所以选择D。
3.若变量已正确定义for(x=0, y=0; (y!=99&& x<4); x++)则以上for循环______。
SSS_SINGLE_SELA 执行无限次B 执行3次C 执行4次D 执行次数不定分值: 2答案:C[解析] 该循环分别在x取值为0、1、2、3时各执行一次,所以本题答案为C。
4.若有以下程序#include<stdio.h>main(){ int a=6, b=0, c=0;for(;a;){ b+=a; a-=++c;}printf("%d, %d, %d\n", a, b, c);}则程序的输出结果是______。
SSS_SINGLE_SELA 0, 18, 3B 1, 14, 3C 0, 14, 3D 0, 14, 6分值: 2答案:C[解析] 循环执行3次,使a为0,循环结束,最终a b c分别为0 14 3,所以选择C。
c语言程序设计教程(第2版)课后题及模拟题参考答案

c语言程序设计教程(第2版)课后题及模拟题参考答案习题11-1 填空题1.函数2.主函数main(),主函数main()3.主函数main()4.函数首部,函数体5.{, }6./*, */7.顺序结构,选择结构,循环结构8..c, .obj, .exe1-2 思考题1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。
其基本结构包括顺序结构、选择结构和循环结构三种。
2.算法是对具体问题求解步骤的一种描述。
计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。
1-3 编程题1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。
#include "stdio.h"main(){ float a, b, h, s;a=10; b=20;h=5; s=(a+b)*h/2;printf("s=%f\n" , s );}2. 编写程序显示如图1.11所示信息。
图1.11 显示信息#include "stdio.h"main(){ printf("******************************\n");printf("* hello world *\n");printf("******************************\n"); }习题22-1 单选题1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题1.2.0000002.1,0.53.9,24.65.100,d6.(1)20 (2)0 (3)607. (1)10,6,4 (2)6,9,15 (3)3,60,838. 55习题33-1 选择题1-5BDABC 6-10ADCAC 11-12BB3-2 填空题1. 32.02613.0x104. 2, 1 互换a,b的值5. 6.66.–0038.77. 5.0,4,c=3<Enter>8.i=10,j=20<Enter>9.(1) 65(2) 65,A(3) 56.123400,123.456001(4) 3.141600(5) 8765.432(6) 5.864000e+002(7) 3.141600e+000(8) 3.1416(9) 8765(10) 3.1416,8765.4310.a=2 b=5x=8.8 y=76.34c1=65 c2=973-3 编程题1. 编写程序实现从键盘输入两个十进制整型数据10和8给变量x和y,并按下列格式 输出。
2023年9月青少年软件编程C语言等级考试试卷二级真题(含答案)

2023年9月青少年软件编程C语言等级考试试卷二级(含答案)分数:100题数:5一、编程题(共5题,共100分)第1题.数组指定部分逆序重放将一个数组中的前k项按逆序重新存放,例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。
时间限制:1000内存限制:65536输入:有两行,第一行两个整数,以空格分隔,分别为数组元素的个数n(1<n<100)以及指定的k(1<=k<=n)。
第二行是n个整数,每两个整数之间用空格分隔。
输出:只有一行,输出按题目要求逆序后数组的整数,每两个整数之间用空格分隔。
样例输入:5386541样例输出:56841参考答案:#include<bits/stdc++.h>using namespace std;int a[1000],b[1000];int main(){int n,k;cin>>n>>k;for(int i=0;i<n;i++){cin>>a[i];b[i]=a[i];}for(int i=k-1;i>=0;i--){cout<<b[i]<<';';}for(int i=k;i<n;i++){cout<<a[i]<<';';}}第2题.谁考了第k名在一次考试中,每个学生的成绩都不相同,现知道了每个学生的学.号和成绩,求考第k名学生的学.号和成绩。
时间限制:1000内存限制:65536输入:第一行有两个整数,分别是学生的人数n(1≤n≤100),和求第k名学生的k(1≤k≤n)。
其后有n行数据,每行包括一个学.号(整数)和一个成绩(浮点数),中间用一个空格分隔。
输出:输出第k名学生的学.号和成绩,中间用空格分隔。
(注:请用%g输出成绩)。
样例输入:539078800167.89078800290.390788003619078800468.49078800573.9样例输出:9078800468.4参考答案:#include<bits/stdc++.h>using namespace std;int sum(int n){int s=0;while(n>0){s+=n%10;n/=10;}return s;}int main(){int i,j,t,n,a[1000],b[1000];cin>>n;for(i=0;i<n;i++){cin>>a[i];b[i]=sum(a[i]);}for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if((b[j]<b[j+1])||((b[j]==b[j+1])&&(a[j]<a[j+1]))){t=b[j];b[j]=b[j+1];b[j+1]=t;t=a[j];a[j]=a[j+1];a[j+1]=t;}}}for(i=0;i<n;i++){cout<<a[i]<<"";}return0;}第3题.内部元素之和输入一个整数矩阵,计算位于矩阵内部的元素之和。
二级C语言分类模拟题562_真题(含答案与解析)-交互

二级C语言分类模拟题562(总分43.5, 做题时间90分钟)选择题1.有以下程序:#include<stdio,h>main( ){ int i,j,x=0;for(i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if(j%2==0)continue;x++;}x++;}printf("x=%d\n",x);}程序的运行结果是______。
SSS_SINGLE_SELA x=4B x=6C x=8D x=12分值: 1答案:C[解析] 第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条x++,x=4,第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。
2.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是______。
SSS_SINGLE_SELA 学生成绩管理系统B C语言编译程序C UNIX操作系统D 数据库管理系统分值: 1答案:A[解析] 软件按功能可以分为:应用软件、系统软件、支撑软件。
操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件。
所以B、C、D选项都是系统软件,只有A选项是应用软件。
3.下面程序的输出结果是______。
#include<stdio.h>main(){char a[]={"a","b","c","d","f","g"},*p;p=a;printf("%c\n",*p+4);}SSS_SINGLE_SELA .aB .bC .eD .f分值: 2答案:C4.下列关于栈的叙述正确的是______。
《C语言程序设计》期末笔试模拟试卷及参考答案
《C语言程序设计》期末笔模拟试卷(本试卷满分60分)院系学号姓名1. 答案均写在答题纸上,写在卷面上无效;2. 答题结束后将试卷及答题纸全部交给监考教师;一、单选题 (1分×16,共16分)1. 下面 (1) 是正确的局部数组声明CA. char a[][5]={“math”,“phy”,“chemi” };B. int b[3][3]={{1,2,3},4,5,6,7,{8,9}};C. float c[sizeof(sin(1))]={1,‘\n’};D. char ch[ ][10]={“Beijing”,“Nanjing”},*p[ ]={ ch[0],ch[1] };2. 如下哪个程序语法、语义都正确,且能获得正确的运行结果(2) A3. 若有声明:enum d{ e,s,w,n}c=s;则表达式“ops”+ c值的类型是 (3) 。
B A. enum d B. char * C. int D. int *4. 下列叙述中除 (4) 之外都是正确的。
BA.引用函数说明中指定的形参名,不必与函数定义中对应的形参名相同。
B.不能用extern定义一个外部变量、数组。
C. 无论在函数外还是在函数内说明引用本程序中定义的函数,都可不写extern关键字。
D.用extern说明引用一个外部数组时,可以不给出数组大小。
5. 下列能正确执行的程序是: (5) A6. 对于二维数组定义: int a[i][j]; (i、j均为常量),且有:0≤m<i,0≤n<j , 则下列除 (6) 外,都是不等价的。
BA. a+m 与 a[0]+mB. a+m 与 *(a+m)C. *(a+m) 与 *a[m]D. *a 与 *a[0]7. 若程序中有声明:“float a,b[3][4];”与引用函数的说明:“int fun(floatk[][3]),int n);”则下列 (7) 都是常量或常量表达式。
二级c语言经典练习带答案
考研程序设计复习题1.以下程序的输出结果是______。
main(){ int a=0;a+=(a=8);printf("%d\n",a);}答案:16知识点:赋值表达式2.若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是______。
c=(a-=(b-5));c=(a % 11)+(b=3);答案:3知识点:赋值表达式3.以下程序运行后的了输出结果是______。
main(){ int a=1,b=2,c=3;if(c=a) printf("%d\n",c);else printf("%d\n",b);}答案:1知识点:赋值表达式4.若有语句int i=-19, j=i%4;printf("%d\n",j);则输出结果是______。
答案:-3知识点:算术表达式5.设有以下程序:main(){ int n1,n2;scanf("%d",&n2);while(n2!=0);{ n1=n2 % 10n2=n2/10;printf("%d",n1);}}程序运行后,如果从键盘上输入1298,则输出结果为______。
答案:8921知识点:算术表达式6.下面程序的输出是______。
unsigned fun6( unsigned num){ unsigned k=1;do {k*=num%10;num/=10;}while(num);return(k);}main(){ unsigned n=26;printf("%d\n", fun6(n));}答案:12知识点:算术表达式7.设y 是int型变量,请写出判断y为奇数的关系表达式______。
答案:y%2知识点:算术表达式8.下列程序的输出结果是16.00,请填空。
main(){ int a=9,b=2float x=______,y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2f\n",z);}答案:6.6知识点:算术表达式9.以下程序运行后的输出结果是______。
国家二级(C语言)笔试模拟试卷31(题后含答案及解析)
国家二级(C语言)笔试模拟试卷31(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.算法的空间复杂度是指( )。
A.算法程序的长度B.算法程序中的指令条数C.算法程序所占的存储空间D.算法执行过程中所需要的存储空间正确答案:D解析:一个算法的空间复杂度,一般是指执行这个算法所需的存储空间。
一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占用的存储空间及算法执行过程中所需要的额外空间。
2.数据的存储结构是指( )。
A.数据所占的存储空间B.数据的逻辑结构在计算机中的存放形式C.数据在计算机中的顺序存储方式D.存储在计算机外存中的数据正确答案:B解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。
数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。
3.有下列二叉树,对此二叉树前序遍历的结果为( )。
A.ACFHIBEDGB.ABCDEFGHIC.ABDEGCFHID.ABCDEFHGI正确答案:C解析:对二叉树的前序遍历是指;先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左,右子树时,先访问根结点,再依次访问其左,右子树。
4.下列描述中正确的是( )。
A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据和相关文档的集合正确答案:D解析:软件是运行在计算机硬件之上的逻辑实体,包括程序,数据和相关的文档。
软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制。
5.两个或两个以上模块之间联系的紧密程度称为( )。
A.耦合性B.内聚性C.复杂性D.数据传输特性正确答案:A解析:耦合性是模块间互相连接的紧密程皮的度量,取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
国开《C语言程序设计》(形考任务二)试题及答案
一、选择题(共20分,每小题2分)试题1当处理特定问题时的循环次数已知时,通常采用的语句是()。
选择一项:G a.for]b.whilec.do-whiled.switch试题2在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是()。
选择一项:a.for* b.ifr c.do' d.while试题3for语句能够被改写成的语句是()。
选择一项:r a.复合「b.ifc.switch'* d.while试题4下面循环语句执行结束后输出的i值为()。
for(int i=0; i<n; i + +) if(i>n/2) {cout<<i<<endl; break;}选择一项:r a.n/2b.n/2 + 1c.n/2-1d.n-1试题5在下面循环语句中,内层循环体s语句的执行总次数为()。
for(int i=0; i<n; i + +)for(int j=i; j<n; j++) S;选择一项:r a.n2广 b.(n+l)/2C c.n(n-l)/26 d.n(n + l)/2试题6在下面的d。
循环语句中,其循环体被执行的次数为()。
int i=0; do i + +; while(i*i<10);选择一项:何a,4「b.3「c.5r" d.2试题7在下面的一维数组定义中,有语法错误的选项是()。
选择一项:C a.inta[]={l/2,3);r b.int a[10]={0};c.int a[];d.int a[5];r在下面的二维数组定义中,语法正确的选项是()。
选择一项:「a.int a[5][];C b.int a[][5];° c.inta[][3]={{l/3,5}/{2}};「d.int a[](10);试题9假定一个二维数组的定义语句为〃inta[3][4]={{3,4},{2,8,6}};",则元素a⑴⑴的值为()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单选题: 1、 执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、 设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+(4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、 若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、 请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、 为避免嵌套的条件分支语句if…else的二义性,C语言规定,C程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、 若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、 请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、 设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、 阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈 3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈 2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、 输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); } B. main() { float c,F; scanf("%f,%f",&c,&F); c=5*(F-32)/9; printf("摄氏温度是:%f\n",c); } C. main() { float c,F; scanf("%f,%f",&c,&F); c=5%9*(F-32); printf("摄氏温度是:%f\n",c); } D. main() { float c,F; scanf("%f,%f",&c,&F); c=5.0/9.0(F-32); printf("摄氏温度是:%f\n",c); } 答案: B 11、 以下程序的输出结果是 main( ) { int k=17; printf("%d,%o,%x \n",k,k,k); } A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,21,11 答案: D 12、 请读程序: 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; } printf("a=%d,b=%d\n",a,b); } 上面程序输出结果是 A. a=2,b=1 B. a=1,b=1 C. a=1,b=0 D. a=2,b=0 答案: A 13、 C语言中,调用一个函数时,实参变量和形参变量之间的数据传递是____. A. 单纯值传递 B. 单纯地址传递 C. 值传递和地址传递都有可能 D. 由实参传给形参,然后由形参传回给实参,即是双向传递 答案: A 14、 下列不正确的转义字符是( )
A. '\\' B. '\' C. '\101' D. '\0' 答案: B 15、 下列语句正确的是( ) A. if(a > b > c) temp=a B. if((a=b) > 0) temp=a C. int a=b=c=4 D. int a;scanf(%d,a) 答案: B 16、 以下说法中正确的是( )。
A. C语言程序中是从第一定义的函数开始执行 B. 在C语言程序中,要调用的函数必须在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 答案: C 17、 下列说法中正确的是____。 A. 一个数组能够存储许多不同类型的值 B. 数组的下标可以是float数据类型 C. 如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐 D. 初始化值列表中的值的个数多于数组元素的个数是错误的 答案: D 18、 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为 A. float B. char C. int D. double 答案: D 19、 设以下变量均为int类型,则值不等于7的表达式是 A. (x=y=6,x+y,x+1) B. (x=y=6,x+y,y+1) C. (x=6,x+1,y=6,x+y) D. (y=6,y+1,x=y,x+1) 答案: C 20、 以下不正确的if语句形式是 A. if(x>y&&x!=y)t=x++; B. if(x==y) x+=y; C. if(x!=y) scanf("%d",&x) else scanf("%d",&y); D. if(x<> 答案: C 21、 若i为整型变量,则以下循环执行次数是 for(i=2;i==0;) printf("%d",i--); A. 无限次 B. 0次 C. 1次 D. 2次 答案: B 22、 以下错误的描述是:函数调用可以 A. 出现在执行语句中 B. 出现在一个表达式中 C. 做为一个函数的实参 D. 做为一个函数的形参 答案: D 23、 以下各选项企图说明一种新的类型名,其中正确的是 A. typedef v1 int; B. typedef v2=int; C. typedef v1 int v3; D. typedef v4: int; 答案: C 24、 以下程序的输出结果是 main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } A. 5 B. 4 C. 6 D. 不确定 答案: c 25、 以下程序调用findmax函数返回数组中的最大值 findmax(int a[],int n) { int *p,*s; for(p=a,s=a; p-aprintf("%d\n",findmax(x,5)); } 在下划线处应填入的是 A. p>s B. *p>*s C. a[p]>a[s] D. p-a>p-s 答案: B 26、 有如下程序
main() { char s[]="ABCD", *P; for(p=s+l; p < s+4; p++) printf ("%s\n",p); } 该程序的输出结果是 A. ABCD BCD CD D B. A B C D C. B C D D. BCD CD D 答案: D 27、 下列描述中不正确的是 A. 字符型数组中可以存放字符串 B. 可以对字符型数组进行整体输入、输出 C. 可以对整型数组进行整体输入、输出 D. 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 答案: C 28、 将三个数排序需要比较______次。 A. 2 B. 3 C. 4 D. 不确定 答案: B 填空题: 1、 下面程序功能是:输出100以内能被3整除且个位数为6的所有整数,请填 空。 #include < stdio.h > main() { int i, j; for(i=0; _____(1)______; i++) { j=i*10+6; if( _____(2)______ ) continue; printf("%d",j); } } 答案: i<10,j%3!=0 2、 main( ) { int sum=0, i ; scanf( "%d",&i ); while (i < = 10) {sum=sum+i; i++;} printf("%d",sum);} 输入 1 输出______ 答案: 55 3、 用来引用特定数组元素的数字称为____. 答案: 下标 4、 把数组元素按顺序存放的过程称为_________. 答案: 排序 5、 应该用_______声明数组的大小,因为这样能够更容易调整程序。 答案: 符号常量 6、 输出为__________ main( ) {char x,y; x='a'; y='b'; printf("xy\bmn\r"); printf("%c\\%c\\n",x,y); printf("%c\a\n",' \65 ');} 答案: a\b\n 5 7、 #include < stdio.h > main( ) {int i=0,j=0,a=6; if ((++i > 0) || (j++ > 0)) a++; printf("i=%d,j=%d,a=%d\n",i,j,a);} 结果:_____ 答案: I=1, j=0, a=7 8、 写出该程序运行的结果。 #include void main() { int i, j, k=10; i=(j=k)>0; j=i==j; printf(``%2d,%2d\n``,i,j); k=!i==++j; printf("%2d, %2d, %2d\n", i, j, k);} 答案: 1,0,1,1,0 9、 从键盘输入一个大写字母,要求改用小写字母输出,程序如下办 #include "stdio.h" main( ) { char c1,c2; (1)_________; printf ("%c,%d\n",c1,c1 ); (2)_____________; printf("%c,%d\n",c2,c2);} 答案: c1=getchar( ),c2=c1+32; 10、 设有以下变量定义,并已赋确定的值 char w; int x; float y; double z; 则表达式:w*x+z-y所求得的数据类型为____________ 答案: double 11、 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________ 答案: 4,8 12、 设有以下程序: main() { int n1,n2; scanf("%d",&n2); while(n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为_________。 答案: 8921 13、 若从键盘输入58,则以下程序输出的结果是 ________ 。 main() { int a; scanf("%d",&a); if(a>50) printf("%d",a); if(a>40) printf("%d",a); if(a>30) printf("%d",a); } 答案: 585858 14、 以下程序的输出结果是______________。 main()