C语言题集(二)答案

合集下载

C语言程序设计试题集及其答案 (2)

C语言程序设计试题集及其答案 (2)

第一章基础知识一.填空1.每个C程序都必须有且仅有一个________ 函数。

2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。

3. 软件是程序,以及______、使用和维护所需要的所有文档。

4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。

5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。

6. C语言是由________组成的。

7. C语言的函数可分为主函数main、标准库函数和_________。

8. 一个函数是由两部分组成的,即:________和函数体。

9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。

10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。

不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。

11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。

12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。

13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。

14. C程序的执行均是由执行_________开始。

15.函数体即为包含在{}内的部分。

它分为________和为完成功能任务由若干个C 语句组成的执行部分。

16.C语言程序中一条简单语句是以________字符作为结束符的。

17.C语言是结构化、________的程序设计语言。

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。

答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。

答案:*三、简答题1. 简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的元素集合。

指针是一个变量,它存储了另一个变量的内存地址。

数组名可以作为指针使用,但数组本身不是指针。

数组的大小在定义时确定,而指针可以指向不同大小的内存块。

2. 解释C语言中的递归函数。

答案:递归函数是一种函数,它在执行过程中调用自己。

递归函数通常用于解决可以分解为相似子问题的问题。

递归函数必须有一个明确的终止条件,以避免无限递归。

四、编程题1. 编写一个C语言程序,实现求1到100的和。

答案:```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转。

答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。

C语言程序设计习题集(有答案)

C语言程序设计习题集(有答案)

高等教育自学考试C语言程序设计(二)课程代号(05772)同步练习题班级学号姓名二O 一六年三月目录第一章C语言概述第二章基本数据类型第三章控制结构第四章运算符和表达式第五章函数第六章数组第七章字符与字符串第八章变量类别与编译预处第九章指针第十章结构体、共用体和枚举类型第十一章文件第一章C语言概述一、单项选择题1.在计算机上可以直接运行的程序是()。

A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言程序2. 一个C语言程序是由()A.若干函数组成B.若干过程组成C.若干主程序组成D.若干子程序组成3. C语言不具有的特点是()A.具有结构化的控制语句B.数据类型丰富C.语法限制不太严格,程序设计自由度大D.在可移植性上,C语言比其他语言差4. 以下叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个主函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面5. 以下叙述正确的是()A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别和执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,所以具有其他语言的一切优点二、填空1. 计算机语言的发展经过了、和等阶段。

2. C语言既适合编写,也适合编写应用软件。

标准答案一、单项选择题CADDC二、填空1. 机器语言,汇编语言,高级语言2. 系统软件第二章基本数据类型一、单项选择题1.正确的C语言用户自定义标识符是()A.printB.floatC.when?D.random%22.属于C语言基本数据类型的是( )A.指针型B.无符号整型C.数组型D.结构型3.C语言的长整型数值在计算机中占用的字节个数是( )A.1B.2C.3D.44.C语言中,″\x3d″在内存中占用的字节数是( )A.1B.2C.4D.55.下列关于C语言的叙述错误的是( )A. 英文字母大小写不加以区分B. 不同类型的变量可以出现在同一个表达式中C. 在赋值表达式中赋值号两边的类型可以不同D. 某些运算符在不同的场合可以有不同的含义6.下列转义字符中错误的是( )A. ′\000′B. ′\14′C. ′\x111′D. ′\2′7.下列标识符中,不是C语言保留字的是( )A. charB. whileC. minD. default8.下列保留字中用于构成循环结构的是()A.ifB.whileC.switchD.default9. 数据-324在二进制文件和文本文件中所占的字节数分别是()A.2,2B.2,4C.4,2D.4,410. 请选出可以作为C语言用户标识符的一组标识符()A.void, define, WORD B.A3_B3, _123, abcC.FOR, -abc, Case D.2a, Do, Sizeof11.下列运算符优先级最高的是()A.关系运算符B.赋值运算符C.算术运算符D.逻辑运算符12. sizeof(float)是()A.一种函数调用B.一个不合法的表示形式C.一个整型表达式D.一个浮点表达式13. 下列叙述不正确的是()A.一个C语言程序可由一个或多个函数组成B.一个C语言程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在C语言程序中,注释说明只能位于一条语句的后面14. 编译C语言程序时,程序中的注释部分将()A.不参加编译,也不会出现在目标程序中B.参加编译,但不会出现在目标程序中C.不参加编译,但会出现在目标程序中D.参加编译,并会出现在目标程序中15. 下列字符串常量不正确的是()A.'abc' B."12'12" C."0" D." "16. 下列4个选项中,均是合法整型常量的是()A.160 -0xffff 011B.-0xcdf 01ª0xeC.-01 986,012 0668D.-0x48a 2e5 0x17. 以下选项中不属于C语言类型的是()A.signed short int B.unsigned long intC.unsigned int D.long short18. 数值029是一个()A.八进制数B.十六进制数C.十进制数D.非法数19. 在C语言中,要求运算数必须是整型的运算符是()A./ B.++ C.!=D.%20. 当c的值不为0时,以下能将c的值赋给变量a,b 的是()A.c=b=a B.(a=c) || (b=c)C.(a=c) && (b=c) D.a=c=b二、填空1. 表示空类型的保留字是_____________。

C语言基础练习题(含答案)(2)

C语言基础练习题(含答案)(2)
{
int k;
scanf(”%d”, &k);
switch(k)
{ case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++);
D.switch (grade)
{ case ’C’ :printf(”<60\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
default: printf(”grade is error!\n”);
C.!(x%2) D.x%2
12.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。
A.0 B.语法错
C.1 D.“假”
第二章 选择结构
2.1 选择题
1. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。
A.6 B.0 C.2 D.1
2. 设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为()。
#include ”stdio.h”
main()
{ int a=1;
if (a++>1) printf(”%d\n”, a);

C语言程序设计练习题第2部分答案

C语言程序设计练习题第2部分答案

case‘1’:v1++;
case‘3’: v3++;
case‘2’: v2++;
}
printf (“v1=%d,v2=%d,v3=%d,v4=%d\n”,v1,v2,v3,v4);
}
A) v1=4,v2=2,v3=1,v4=1
for (i=0;i<n;i++)
printf (“%4d”,a[i]);
} 53.下面程序的输出是_____.
main ()
{ char s[]=“12134211”;
int v1=0,v2=0,v3=0,v4=0,k;
for (k=0;s[k];k++)
switch(s[k])
{ default: v4++;
{m=str[i]; str[i]=_str[j-1]_____; str[j-1]=m; } printf(“%s\n”,str); } 51.下面程序的功能是将字符数组 a 中下标值为偶数的元素从小到大排列,其他元素不变, 请填空。
#include<stdio.h> #include<string.h> main() {char a[]=”clanguage”,t; int i,j,k; k=strlen(a); for (i=0;i<=k-2;i+=2) for (j=i+2;j<k;__ j+=2 __) if (_ a[i]>a[j] ___) {t=a[i];a[i]=a[j];a[j]=t;} puts(a); printf(“\n”); }
}
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力通根1保据过护生管高产线中工敷资艺设料高技试中术卷0资配不料置仅试技可卷术以要是解求指决,机吊对组顶电在层气进配设行置备继不进电规行保范空护高载高中与中资带资料负料试荷试卷下卷问高总题中2体2资配,料置而试时且卷,可调需保控要障试在各验最类;大管对限路设度习备内题进来到行确位调保。整机在使组管其高路在中敷正资设常料过工试程况1卷下中安与,全过要,度加并工强且作看尽下护可1都能关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编.工写保况复护进杂层行设防自备腐动与跨处装接理置地,高线尤中弯其资曲要料半避试径免卷标错调高误试等高方,中案要资,求料编技试5写术卷、重交保电要底护气设。装设备管置备4高线动调、中敷作试电资设,高气料技并中课3试术且资件、卷中拒料中管试包绝试调路验含动卷试敷方线作技设案槽,术技以、来术及管避系架免统等不启多必动项要方高案式中;,资对为料整解试套决卷启高突动中然过语停程文机中电。高气因中课此资件,料中电试管力卷壁高电薄中气、资设接料备口试进不卷行严保调等护试问装工题置作,调并合试且理技进利术行用,过管要关线求运敷电行设力高技保中术护资。装料线置试缆做卷敷到技设准术原确指则灵导:活。在。对分对于线于调盒差试处动过,保程当护中不装高同置中电高资压中料回资试路料卷交试技叉卷术时调问,试题应技,采术作用是为金指调属发试隔电人板机员进一,行变需隔压要开器在处组事理在前;发掌同生握一内图线部纸槽故资内障料,时、强,设电需备回要制路进造须行厂同外家时部出切电具断源高习高中题中资电资料源料试,试卷线卷试缆切验敷除报设从告完而与毕采相,用关要高技进中术行资资检料料查试,和卷并检主且测要了处保解理护现。装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

C语言程序设计(第二版)答案

C语言程序设计(第二版)答案

参考答案习题二(P33)一.单选题1.C2.B3.D4.C5.A6.D7.D8.B9.B 10.D 11.D 12.C 13.C . 15. A 14题最后一句应为printf("%f\n",d*y);结果为2.2二.填空题1. 182. int float double3. 10 114. 八十六十5. %三.阅读程序题1.10,10,9,102.j=1,i=2k=3,i=3j=3,i=2k=1,i=1习题三(P52)一.单选题1.D2.C3.D4.B5.A6.B7.C8.A9.C 10.B 11. -1,37777777777,4294967295 二.填空题5. L6. -1三.阅读程序题1. 6 6 6.00 6.002. x=127,x= 127,x=177,x=7fY=123.4567 , y= 123.46 , y=123.456703. 2,14. 12345. 4,36. -6,-6四.程序设计题1.#include "stdio.h"#include "math.h"main(){float a,b,c,d,x1,x2;a=2;b=-3;c=-5;d=b*b-4*a*c;x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("x1=%.2f,x2=%.2f\n",x1,x2);}2.#include <stdio.h>main(){ float a,v,s;scanf("%f",&a);v=a*a*a;s=6*a*a;printf("v=%.2f,s=%.2f\n",v,s);}3.#include <stdio.h>main(){ int a,b,c,t;scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);t=c;c=b;b=a;a=t;printf("a=%d,b=%d,c=%d\n",a,b,c);}4.#include <stdio.h>main(){ char s1,s2;s1=getchar();s2=s1-32;printf("%c\n",s2);}习题四(P70)一.单选题1.C2.D3.D4.B5.A6.D7.D8.B9.C 10.A 11.B 12.D 13.passwarnerror .14.C 15. C 16.B 17. B 18. C二.填空题1. 非0 02. k==03. n%7==0 && n%8==0 else三.阅读程序题1. a=1,b=02. c=1四.程序设计题1.#include <stdio.h>main(){ int a,b;char c;printf("INPUT A+(-*/)B\n");scanf("%d%c%d",&a,&c,&b);switch(c){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%d\n",a,b,a/b);break;default:printf("INPUT ERROR!");}}2.#include <stdio.h>main(){ float x,y;scanf("%f",&x);if(x==0||x==2)y=0;else if(x>0) y=(x+1)/(x-2);else y=(x-1)/(x-2);printf("y=%f\n",y);}3.#include <stdio.h>main(){ int g;printf("请输入学生成绩:");scanf("%d",&g);printf("g=%d:",g);switch(g/10){case 10:printf("A\n");break;case 9:printf("B\n");break;case 8:printf("C\n");break;case 7:printf("D\n");break;case 6:printf("E\n");break;default:printf("F\n");}}4.#include <stdio.h>main(){ int x,n=0;scanf("%d",&x);if(x<=0||x>=10000)printf("Data Error!\n");else{if(x<10)n=1;else if(x<100)n=2;else if(x<1000)n=3;else n=4;}printf("n=%d\n",n);}习题五(P87)一.单选题1.B2.D3.C4.C5.B6.C7.D8.C9.A 10.D 11.B 12.B 13.B 14.D 15. C 二.填空题1. for语句while语句do-while语句2. a=14,y=263. k=14,n= -14. 395. s=196. 222227. 108. 79. 810. 5,5三.改错题应改为for(i=0;i<5;i++)j++;应改为int j=0;while(j<10){j++;i=j;} 注while(j<10)后不应有分号应改为while(j<10); 注while(j<10)后分号不能少s*=i;i++;应改为{s*=i;i++;}continue 应改为break四.程序设计题1.#include <stdio.h>main(){ int i,j,s=0;for(i=1,j=1;i<=100;i++,j=j*(-1))s=s+i*j;printf("s=%d\n",s);}1.(另一做法)#include<stdio.h>main(){int i,s;for(i=1,s=0;i<=100;i++)if(i%2==0)s=s-i;else s=s+i;printf ("%d\n",s);}2.#include <stdio.h>main(){ int i,j,s1=0,s2=0;for(i=0;i<10;i++){scanf("%d",&j);if(j>0)s1=s1+j;else s2=s2+j;}printf("s1=%d,s2=%d\n",s1,s2);}3.#include<stdio.h>main(){int i,s;for(i=6,s=0;i<=96;i=i+1)if(i%10==6||i/10==6)s=s+i;printf ("%d\n",s);}4.#include<stdio.h>main(){int i,a,b,c;for(i=100;i<=999;i++){a=(i%10);b=(i/10%10);c=(i/100);if(i==a*a*a+b*b*b+c*c*c)printf ("%d\n",i);}}5.#include <stdio.h>main( ){int i,j,k=0;for (i=1;i<=4;i++){for (j=1;j<=i;j++){k++;printf("%d",k%10);}printf("\n");}}6.#include <stdio.h>main( ){int i,j,k=0;for (i=-3;i<=3;i++){if(i<0)k=-i;else k=i;for(j=1;j<=k;j++)printf(" ");for(j=1;j<=7-2*k;j++)printf("*");printf("\n");}}习题六(P111)一.单选题1.D2.B3.C4.C5.C6.D7.A8.B二.填空题1. 20 0 192. 数组名3. 越界4. 65. j==k a[j][k]=1; a[j][k]=0;三.阅读程序题1. 6 5 43 2 12.aaabbbccc ddd3.2,2,1四.程序设计题1.#include<stdio.h>main(){ int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,s=0;for(i=0;i<4;i++)for(j=0;j<4;j++)if(i==j||i+j==3)s+=a[i][j];printf("%d",s);}2.#include <stdio.h>{ char a[80];int i,j=5; /*假设删除位置为5*/gets(a);for(i=j-1;a[i]!='\0';i++)a[i]=a[i+1];a[i]='\0';puts(a);}3.#include <stdio.h>#include <string.h>main(){ char a[80];int i,j=5; /*假设插入位置为5*/char s='t'; /*假设插入字符为t*/gets(a);for(i=strlen(a);i>j;i--)a[i+1]=a[i];a[j]='t';puts(a);}4.#include<stdio.h>main(){ int a[3][5]={1,3,5,7,9,2,4,6,8,10,3,5,8,7,6}; int i,j,s1[3]={0},s2[5]={0};for(i=0;i<3;i++)for(j=0;j<5;j++)s1[i]+=a[i][ j];for(i=0;i<5;i++)for(j=0;j<3;j++)s2[i]+=a[ j][i];for(i=0;i<3;i++){for(j=0;j<5;j++)printf("%6d",a[i][j]);printf (" |%6d\n",s1[i]);}for(i=0;i<33;i++) printf("-");printf("\n");for(i=0;i<5;i++) printf("%6d",s2[i]);printf("\n");}5.#include<stdio.h>{ char s[3][80];int a=0,b=0,c=0,d=0,e=0,i,j;for(i=0;i<3;i++) gets(s[i]);for(i=0;i<3;i++)for(j=0;s[i][j]!='\0';j++)if(s[i][j]>='A'&&s[i][j]<='Z')a++;else if(s[i][j]>='a'&&s[i][j]<='z')b++;else if(s[i][j]>='0'&&s[i][j]<='9')c++;else if(s[i][j]==32)d++;else e++;printf("%3d%3d%3d%3d%3d",a,b,c,d,e);}习题七(P145)一.单选题1.A2.B3.C4.A5.C6.D7.C8.B9.B 10.C 11.D 二.填空题1. 该函数内局部2. 整型3. k<=breturn y;4. x[i]return (ave);fun(a,20)5. 1;add(n-1);add(n);6. n*f(n-1)0;f(i)三.阅读程序,写出运行结果1.10,20,302.643.84. hlo5. sum=55四.程序设计题1.#include <stdio.h>main(){float add(float, float), sub(float, float);float aver(float, float),a,b;scanf("%f,%f",&a,&b);printf("add=%f, sub=%f\n ", add(a,b), sub(a,b)); printf("aver =%f", aver(a,b));}float add(float x, float y) {return(x+y);}float sub(float x, float y) {return(x-y);}float aver(float x, float y) {return((x+y)/2);} 2.#include<stdio.h>main(){ int a,b,c,abmax(int,int);scanf("%d%d%d",&a,&b,&c);printf("max=%d\n",abmax(abmax(a,b),c)); }int abmax(int a,int b){if(a>b)return a;else return b;}3.#include <stdio.h>main(){float x,fun(float, int);int n;scanf("%f%d",&x,&n);printf("%f\n", fun(x,n));}float fun(float x, int n){float y;if(n==0)y=1;else y=x*fun(x,n-1);return y;}4.#include <stdio.h>main(){long f(int);int n,k;scanf("%d",&n);for(k=1;k<=n;k++)printf("%ld,",f(k));printf("\n");}long f(int n){long y;if(n<=2)y=1;else y=f(n-1)+f(n-2); return y;}5.#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k,s;for(k=0;k<n/2;k++) {s=a[k];a[k]=a[n-k-1];a[n-k-1]=s;}}5. (另一做法)#include <stdio.h>#include <string.h> main(){char a[50];int n;void fun(char x[ ],int n); gets(a);n=strlen(a); fun(a,n);puts(a);}void fun(char a[ ],int n) {int k;char b[50];for(k=0;k<n;k++)b[n-1-k]=a[k];b[k]=a[k];strcpy(a,b);}6.#include <stdio.h>#define KK 100main(){char a[KK];long sjz(char a[]);int i=0,f1=0;printf("input a data:");gets(a);for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9'||a[i]>='A'&&a[i]<='F'||a[i]>='a'&&a[i]<='f') continue;else {f1=1;break;}}a[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(a));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}6.(另一做法)#include <stdio.h>#define KK 100main(){char str[KK],c;long sjz(char a[]);int i=0,f1=0;printf("input a data:");while((c=getchar())!='\n'&&i<KK){if(c>='0'&&c<='9'||c>='A'&&c<='F'||c>='a'&&c<='f')str[i++]=c;else f1=1;}str[i]='\0';if(f1==1)printf("Data Error!\n");else printf("result is :%d\n",sjz(str));}long sjz(char a[]){long n=0,i;;for(i=0;a[i]!='\0';i++){if(a[i]>='0'&&a[i]<='9')n=n*16+a[i]-'0';if(a[i]>='A'&&a[i]<='F')n=n*16+a[i]-'A'+10;if(a[i]>='a'&&a[i]<='f')n=n*16+a[i]-'a'+10;}return n;}习题八(P181) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.C4.D5.C6.B7.C8.C9.C 13.D 14.B 15.A 16.C 17.A 二.填空题1. 指向取地址2. 2 +23. 286. *(p+5)7. ABCD A三.阅读程序题1.102.103.04. 3,65. 1 2 3 4四.程序填空题1.a,b,c或者&x,&y,&z max=*b或者max=y max=*c或者max=z2. ++ =*q ++ ++4. int *a,int *b b[j]=a[i] b[i++]5. *str+=3 *str>’z’&&*str<’a’||*str>’z’ a6. else 0 t[2*j+1]五.程序设计题1.#include <stdio.h>main(){int a[10],*p,*q,t;p=a;for(q=a;q<a+10;q++)scanf("%d",q);for(q=a;q<a+10;q++)printf("%5d",*q);printf("\n");q--;for(;p<q;p++,q--){t=*p;*p=*q;*q=t;}for(p=a;p<a+10;p++)printf("%5d",*p);printf("\n");}2.#include <stdio.h>#include <string.h>void main( ){ char a[50],*p1,*p2,t,n;gets(a);n=strlen(a);p1=a; p2=a+n-1;for(; p1<p2; p1++, p2--){t=*p1; *p1=*p2; *p2=t;}puts(a);}另一做法#include <stdio.h>main(){char str[20],*p=str;gets(str);while(*p)p++;p--;while(p>=str){printf("%c",*p);p--;}printf("\n");}3.#include <stdio.h>main(){int a[10],*p,*max,*min,t;for(p=a;p<a+10;p++)scanf("%d",p); for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");max=min=a;for(p=a+1;p<a+10;p++){if(*p>*max)max=p;if(*p<*min)min=p;}t=a[0];a[0]=*min;*min=t;t=a[9];a[9]=*max;*max=t;for(p=a;p<a+10;p++)printf("%5d",*p); printf("\n");}5.#include <stdio.h>int length(char *s){int n=0;while(*s){n++;s++;}return n;}main(){char str[20];int n;gets(str);n=length(str);printf("The string length is %d\n",n);}6.#include <stdio.h>main(){char str[81],*p=str,*q,t;gets(str);printf("The origenal string:\n");puts(str);for(p=str;*(p+1);p++)for(q=p+1;*q;q++)if(*q<*p){t=*p;*p=*q;*q=t;}printf("The result string:\n");puts(str);}习题九(P222) (注:无答案的题不在本课程讲授范围内)一.单选题1.D2.A3.B4.D 8.B 9.B 10.C二.填空题1. 结构体成员结构体指针指向2. 343. 224.ex三.阅读程序题1.92.10,x3.134. 46 40 415. 06. 3839。

二级C语言试题(含答案)

二级C语言试题(含答案)

二级C语言试题(含答案)二级C语言试题一、判断题(2×8=16分)1、printf()函数总是从新行的起始位置开始打印。

( F )2、所有的变量在使用前都必须予以申明。

(F)3、在申明变量时必须给出变量的类型。

(T)4、C语言认为变量number和NuMbEr是相同的。

( F)5、打印三行输出的C语言程序必须用三条printf语句。

(F)6、求余运算符%只能用于两个整数操作数。

(T)7、switch选择结构中必须有default子句。

(F)8、如果x>y或ay&&a<b)为真。

(f)< p="">二、选择题(3×16=48分)1、下面实现换行功能的格式符为。

(B )A. \tB. \nC. \aD. \k2. C语言程序由什么组成?(单选) CA. 子程序B. 主程序和子程序C. 函数D. 过程3. 下面哪个表达式的值为4. DA. 11/3B. 11.0/3C. (float)11/3D. (int)(11.0/3+0.5)4. 该源程序执行后,屏幕上显示什么?void main(){int a;float b;a=4;b=9.5;printf("a=%d,b=%4.2f\n",a,b);}程序运行结果:a=4,b=9.50A. a=%d,b=%f\nB. a=%d,b=%fC. a=4,b=9.50D. a=4,b=9.55. 若有以下说明语句: Bchar s=’\\\092’;则下面哪一项是正确的.A. 使s的值包含2个字符B. 说明语句不合法C. 使s的值包含6个字符D. 使s的值包含4个字符6.若k,g均为int型变量,则以下语句的输出为哪一项? A int k,g;k=017;g=111;printf("%d,",k);printf("%x\n",g);A. 15,6fB. f,6fC. f,111D. 15,1117. 在C语言的if语句中,用作判断的表达式为___。

带答案C语言2-10章作业

带答案C语言2-10章作业

带答案C语言2-10章作业C语言习题集专业班级学号姓名第2章运算符与表达式一、选择题1.若有定义:int a=2,b=3 ; float x=,y=; 则下面表达式的值为(C)。

(float)(a+b)/2+(int)x% (int)yA) B)35 C) D)2.若有定义:int x=3 ,y=2; float a= ,b=; 则下面表达式的值为( B )。

(x+y)%2+(int)a/(int)bA) B)1 C) D)23.若x和n均是int 型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为( A )。

x%=(n%=2)A)0 B)1 C)2 D)34.设有 int x=11; 则表达式 (x++*1/3)的值是( A )。

A)3 B)4 C)11 D)125.下列程序的输出结果是( C )。

#include <>main( ){ double d=; int x,y;x=; y=(x+/;printf("%d\n", d*y);}A)3 B)3.2 C)0 D)6.下列程序执行后的输出结果是(小数点后只写一位)( A )。

#include <>main( ){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f\n", i,l,f,d);}A)6 6 B)6 6C)6 6 D)6 67.若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是( C )。

A)1 B)2 C) D)8.若变量a,i已正确定义,且i已正确赋值,则合法的语句是( B )。

A)i=int(a) B)++i; C)a=a++=5; D)a=int(i);9.若执行以下程序段后,c3的值为( A )。

int c1=1,c2=2,c3;c3=c2*c1;A)0 B)0.5 C)1 D)210.如下程序的运行结果是( D )。

c语言习题2

c语言习题2

一、填空共18题(共计60分)第1题(2.0分)以下程序的输出结果是【1】.main(){ int a=0a+=(a=8);printf("%d\n",a);}答案:=======(答案1)=======16第2题(2.0分)有以下程序:main(){ char c;while((c=getchar())!='?') putchar(--c);}程序运行时,如果从键盘输入:Y?N?<回车>,则输出结果为【1】答案:=======(答案1)=======X第3题(2.0分)有以下定义和语句struct date{ int day;int month;int year;union{ int share1;float share2;}share;}a;则sizeof(a)的值是【1】.答案:=======(答案1)=======10第4题(2.0分)有以下语句段int n1=10,n2=20;printf("【1】",n1.n2);要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空.n1=10n2=20答案:=======(答案1)=======n1=%d\nn2=%d第5题(2.0分)执行下面的程序段,写出运行后的输出结果为【1】. main(){int i;for (i=0;i<3;i++)switch(i){case 0:printf("%d",i);case 2:printf("%d",i);default:printf("%d",i);}}答案:=======(答案1)=======000122第6题(2.0分)以下程序运行后的输出结果是【1】.main( ){ char c; int n=100;float f=10; double x;x=f*=n/=(c=50);printf("%d %f\n",n,x);}答案:=======(答案1)=======2 20.0第7题(2.0分)以下程序运行后的输出结果是【1】.#include <string.h>void main(){ char ch[]="abc",x[3][4];int i;for(i=0;i<3;i++)strcpy(x[i],ch);for(i=0;i<3;i++)printf("%s",&x[i][i]); printf("\n");}答案:=======(答案1)=======abcbcc第8题(2.0分)以下循环体的执行次数是【1】.main(){int i,j;For(i=0,j=1;i<=j+1; i+=2,j--)Printf("%d\n",i);}答案:=======(答案1)=======1第9题(2.0分)有以下程序main( ){int t=1, i=10;for(; i>=0; i--) t*=i;printf("%d\n",t);}执行后输出结果是【1】答案:=======(答案1)=======第10题(4.0分)下面程序的功能是:使一个字符串按逆序存放,请填空. #include <string.h>main ( ){ char m,str[10];int i,j;gets(str);for(i=0,j=strlen(str);i【1】 ;i++,j--){ m=str[i];str[i]=【2】 ;str[j-1]=m;}printf("%s\n",str);}答案:=======(答案1)=======<j=======(答案2)=======str[j-1]第11题(4.0分)以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果.请填空.int fun( int n){ int m=0,f=1,i;for(i=1; i<=n; i++){ m+=i*f;f=【1】 ;}return m;}main(){ printf("m=%d\n", 【2】 ); }答案:=======(答案1)=======-f=======(答案2)=======fun(10) 第12题(4.0分)下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请填空.main(){ int a,max= 0;scanf ("%d",&a);while(【1】){ if (【2】) max= a;scanf("%d",&a);}printf("%d" ,max );}答案:=======(答案1)=======a=========或=========a!=0=======(答案2)=======max<a第13题(4.0分)下面程序的功能是从键盘输入的10个整数中,找出第一个能被7整除的数.若找到,打印此数后退出循环;若未找到,打印 " not exist " .请填空.main( ){int i, a;for (i=1; i<=10; i++){scanf("%d",&a);if(【1】) {printf("%d", a); break;}}if(【2】) printf(" not exist \n");}答案:=======(答案1)=======a%7 = = 0=======(答案2)=======i>10第14题(4.0分)下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环.请填空.main(){long int num;scanf("%ld",&num);do{ if(【1】) printf("%ld",num);scanf("%ld",&num);}while(【2】);}答案:=======(答案1)=======num/100%10==3=======(答案2)=======num第15题(4.0分)以下fun函数把ch中的大写字母转换成字母序列中的下一个大写字母,字母Z转换成字母A,其它字符不变,返回转换后的字母或其它字符.请填空. char fun(char ch){if(ch= ='Z') ch=【1】;else if(ch>='A'&&ch<='Y') ch=【2】;return ch;}答案:=======(答案1)======='A'=======(答案2)=======ch+1第16题(6.0分)设有以下程序main(){ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i+1;j<3;j++) a[j][i]=0;for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%2d ",a[i][j]); printf("\n");}}运行以上程序,输出3行结果.问:第1行的输出为【1】; 第2行的输出为【2】;第3行的输出为【3】.答案:=======(答案1)=======1 2 3=======(答案2)=======0 5 6=======(答案3)=======0 0 9第17题(6.0分)下面程序的功能是将从键盘输入的一对数,由小到大排序输出.当输入一对相等数时结束循环,请填空.#include <stdio.h>main(){ int a,b,t;scanf("%d%d",&a,&b);while(【1】){ if (【2】){ t=a;a=b;b=t;} printf("%d,%d",a,b);【3】;}}答案:=======(答案1)=======a!=b=========或=========b!=a=======(答案2)=======a>b=========或=========b<a=======(答案3)=======scanf("%d%d",&a,&b)第18题(6.0分)以下程序运行后的输出结果第1行是【1】第2行是【2】第3行是【3】main(){ int i,j,a[][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)for(j=i+1;j<3;j++) a[j][i]=0;for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d ",a[i][j]);printf("\n");}}答案:=======(答案1)=======1 2 3=======(答案2)=======0 5 6=======(答案3)=======0 0 9二、单项选择共20题(共计40分)第1题(2.0分)以下能对二维数组a进行正确初始化的语句是________. A:int a[2][]={{1,0,1},{5,2,3}};B:int a[][3]={{1,2,3},{4,5,6}};C:int a[2][4]={{1,2,3},{4,5},{6}};D:int a[][3]={{1,0,1},{},{1,1}};答案:B第2题(2.0分)已知有预处理命令#include<stdio.h>和声明 char s[10]= "Thank you"; int i;,要求输出字符串"Thank you",以下选项中不能达到要求的语句是________.A:puts(s);B:printf("%s" , s[10]) ;C:for(i=0; s[i]!= '\0' ; i++) printf("%c" , s[i]);D:for(i=0; s[i]!= '\0' ; i++) putchar(s[i]); 答案:B第3题(2.0分)语句while(!E )中的表达式!E等价于( )A:E= =0B:E! =0C:E! =1D:E= =1答案:A第4题(2.0分)表达式"(a=4*5, b=a*2), b-a, a+=2"的值是( ). A:2B:20C:22D:42答案:C第5题(2.0分)下列程序执行后的输出结果是( ).main( ){int x='f';printf("%c \n",'A'+(x-'a'+1));}A:GB:HC:ID:J答案:A第6题(2.0分)以下程序输出的结果是( ).main(){ int i,sum=0;for(i=1; i<=10; i++) ;sum=sum+i;printf("%d",sum);}A:55B:10C:11D:以上皆非答案:C第7题(2.0分)以下程序段循环执行的次数是( ).int k=0;while(k = 1) k++;whileA:无限次B:有语法错,不能执行C:一次也不执行D:执行1次答案:A第8题(2.0分)有关下述语句输出的判断中,正确的是( ).Char x='\x66';Printf("%d",x);A:赋值非法B:输出值不确定C:输出值为66D:输出值为102答案:D第9题(2.0分)若函数f的定义如下:void f(void){ printf(("That's great!"); )则调用函数f的正确形式是( ).A:f;B:f( );C:f(void);D:f(1);答案:B第10题(2.0分)设有:int c1=1,c2=2,c3; 则执行c3=c1/c2后,c3的值是( ).A:0B:1/2C:0.5D:1答案:A第11题(2.0分)printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列.如果字符串长度大于5,则输出按方式( ).A:从左起输出该字串,右补空格B:按原字符长从左向右全部输出C:右对齐输出该宇串,左补空格D:输出错误信息答案:B第12题(2.0分)以下叙述正确的是( ).A:do-while语句构成的循环不能用其它语句构成的循环来代替.B:do-while语句构成的循环只能用break语句退出.C:用do-while语句构成的循环,在while后的表达式为非零时结束循环.D:用do-while语句构成的循环,在while后的表达式为零时结束循环.答案:D第13题(2.0分)下列叙述中不正确的是( ).A:每个C程序文件中都必须有一个main()函数B:在C程序中main()函数的位置是固定的C:C程序可以由一个或多个函数组成D:在C程序的函数中不能定义另一个函数答案:B第14题(2.0分)以下程序运行时输出的结果是( ).int x=1;main( ){ printf("%d",f(x)); }#define x 2;int f(int y){ return x+y; }A:1B:2C:3D:4答案:C第15题(2.0分)程序执行后的输出结果是( ).main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf("n=%d\n",n);}A:n=5B:n=2C:n=3D:n=4答案:D第16题(2.0分)以下选项均以fun函数定义的头部,其中错误的是________. A:int fun(int x, int y[ ])B:int fun(int x, int y[x])C:int fun(int x, int y[3])D:int fun(int x, int *y)答案:B第17题(2.0分)设有:int i=8;j=10; m=i++;n=++j;执行printf("%d, %d, %d, %d",i ,j,m,n);后,屏幕上显示( )A:8,11,9,10B:9,11,8,11C:9,11,8,10 D:8,10,9,11答案:B第18题(2.0分)以下程序的输出结果是( ).main(){ int i=0,a=0;while(i<20){ for(;;){ if((i%10)==0) break;else i--;}i+=11; a+=i;}printh("%d\n",a);}A:21B:32C:33D:11答案:B第19题(2.0分)若程序中已有相应的声明,下列语句中错误的是________. A:printf(i= =4 ? "%6d\n" : "%6d" , i);B:i= =4 ? printf("%6d\n" , i) : printf("%6d" , i); C:for(i=10; ; i--) if(i = =1) break;D:for(i=10; ; i--) if(i --); break;答案:D第20题(2.0分)以下程序的输出结果是( ).main(){int m=6;If(m++>6)printf("%d\n",m);elseprintf(%d\n",--m);}A:7B:6C:5D:4答案:B一、填空共18题(共计60分)第1题(2.0分)以下函数的功能是:求x的y次方,请填空.double fun( double x, int y){ int i;double z;for(i=1, z=x; i<y; i++) 【1】 ;return z;}答案:=======(答案1)=======z*=x第2题(2.0分)设a=2,b=3,x=3.5,y=2.5 求表达式(float)(a+b)/2+(int)x%(int)y的值【1】.答案:=======(答案1)=======3.5第3题(2.0分)执行语句:for(i=10 ; i++<4 ; );后,变量 i的值是:【1】. 答案:=======(答案1)=======11第4题(2.0分)若有声明"int a=5,b=2;",则表达式"b+=(float)(a+b)/2"运算后b的值为【1】.答案:=======(答案1)=======5.5第5题(2.0分)以下程序运行时,输出结果是【1】.#include <stdio.h>void fun(int x){ if(x/2>0) fun(x/2);printf("%d",x%2);}main ( ){ fun(20); putchar('\n'); }答案:=======(答案1)=======10100第6题(2.0分)以下程序运行后的输出结果是【1】#define N 2#define M N+1#define NUM 2*M+1int fib(int n){return ( n<3 ? 2 : fib(n-1)+fib(n-2) );}main( ){printf("%5d%5d\n",NUM,fib(5));}答案:=======(答案1)=======6 10 第7题(2.0分)以下程序运行后的输出结果是【1】.main( ){ int a=3,b=4,c=5,t=99;if(b<a&&a<c) t=a;a=c;c=t;if(a<c&&b<c) t=b;b=a;a=t;printf("%d%d%d ",a,b,c);}答案:=======(答案1)=======4 5 99第8题(2.0分)下列程序的输出结果是【1】.Main(){double d=3.2;Int x,y ;X=1.2;Y=(x+3.8)/5.0;Printf("%f\n",d*y);}答案:=======(答案1)=======第9题(2.0分)设y是int型变量,请写出判断y为奇数的关系表达【1】. 答案:=======(答案1)=======y%2==1第10题(4.0分)表达式-7/2的结果是【1】表达式7%-2的结果是【2】答案:=======(答案1)=======-3=======(答案2)=======1第11题(4.0分)下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请填空.#include "stdio.h"main(){ int m=0,n=0;char c;while((【1】)!='\n'){ if(c>='A' && c<='Z') m++ ;if(c>='a' && c<='z') n++;}printf("%d\n",【2】? n:m);}答案:=======(答案1)=======c=getchar( )=======(答案2)=======m<n=========或=========n>m第12题(4.0分)题号:948下面程序的功能是:计算1到10之间奇数之和及偶数之和,请填空.main(){ int a, b, c, i;a=c= 【1】 ;for(i=0;i<10;i+=2){ a+=i;【2】 ;c+=b;}printf("偶数之和=%d\n",a);printf("奇数之和=%d\n",c);}答案:=======(答案1)==============(答案2)=======b=i+1第13题(4.0分)设有以下程序int x1=30,x2=40;main(){ int x3=10,x4=20;sub(x3,x4);sub(x2,x1);printf("%d,%d\n%d,%d\n",x3,x4,x1,x2);}sub(int x,int y){x1=x;x=y;y=x1;}运行后,第一行的结果是【1】,第二行的结果是【2】.答案:=======(答案1)=======10,20=======(答案2)=======40,40第14题(4.0分)#include<stdio.h>main(){int j,k,s,m;for(k=1;k<10;k++){s=1;m=k+2;for(j=k;j<m;j++,k++)s+=j;} printf("s=%d,k=%d",s,k); }程序输出结果【1】,【2】.答案:=======(答案1)=======S=16=======(答案2)=======k=10第15题(4.0分)下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变,请填空.main(){ char a[]="clanguage",t;int i, j, k;k=strlen(a);for(i=0; i<k-2; i+=2)for(j=i+2; j<k; 【1】 )if( 【2】 ){ t=a[i]; a[i]=a[j]; a[j]=t; }puts(a);printf("\n");}答案:=======(答案1)=======j+=2=======(答案2)=======a[i]>a[j]第16题(6.0分)设有以下程序ff(int k){ static int i=1;int j=0;return ++i+k+j++;}main(){ int i,n=0;for(i=0;i<3;i++){ n+= ff(i); printf("%d\n",n); }}运行以上程序,输出3行结果.问:第1行的输出为【1】; 第2行的输出为【2】;第3行的输出为【3】.答案:=======(答案1)=======2=======(答案2)=======6=======(答案3)=======12第17题(6.0分)设有以下程序main( ){ int a[3][3],i,j;for(i=0; i<3; i++)for(j=0; j<3; j++)scanf("%d",&a[i][j]);for(i=0; i<3; i++)for(j=0; j<3; j++)a[i][j]=a[(a[i][j]+1)%2+1][(a[j][i]+2)%2+1];}若输入的数据为:1 3 5 7 9 2 4 6 8 执行程序后,a[0][0]=【1】, a[1][1]=【2】, a[2][2]=【3】.答案:=======(答案1)=======2=======(答案2)=======2=======(答案3)=======6第18题(6.0分)阅读以下程序main(){ char *str[3]={"Fortrain ","Prolog","Pascal "};char **p;int i;p=str;for(i=0;i<3;i++,p++)printf("%c\n ",(*(*p+3)+1));}该程序第1行、第2行及最后一行的输出分别为【1】、【2】和【3】.答案:=======(答案1)=======u=======(答案2)=======m=======(答案3)=======d二、单项选择共20题(共计40分)第1题(2.0分)一个C语言程序是由________.A:一个主程序和若干子程序组成B:函数组成C:若干过程组成D:若干子程序组成答案:B第2题(2.0分)若有声明"float f=123.45678;",则执行语句"printf("%.3f",f);"后,输出结果是________.A:1.23e+02 B:123.457C:123.45678D:1.234e+02答案:B第3题(2.0分)已知函数fun的定义如下:void fun(int x[ ], int y ){ int k;for(k=0; k<y; k++)x[k]+=y;}若main函数中有声明int a[10]={10};及调用fun函数的语句,则正确的fun函数调用形式是________.A:fun(a[ ], a[0]);B:fun(a[0 ], a[0]);C:fun(&a[0], a[0]);D:fun(a[0], &a[0]);答案:C第4题(2.0分)为了判断两个字符串s1和s2是否相等,应当使用( ). A:if (s1= =s2)B:if (s1=s2)C:if ( strcpy (s1,s2) )D:if ( strcmp( s1,s2)= =0 )答案:D第5题(2.0分)关于函数返回值,以下叙述中正确的是( ).A:函数返回值的类型由函数体函数体内return语句包含的表达式的类型决定B:函数返回值的类型由函数头部定义的函数类型决定C:若函数中有多个return语句,则函数的返回值是排列在最后面的return语句中表达式的值D:若函数中没有return语句,则函数没有返回值答案:B第6题(2.0分)以下程序的输出结果是( ).main( ){int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A:1B:0C:非0的数D:-1答案:A第7题(2.0分)以下叙述正确的是( ).A:一个用C语言编写的程序在运行时总是从main函数开始逐条执行B:main函数是系统库函数C:main函数中每行只能出现一条语句D:main函数必须出现在所用其它函数之前答案:A第8题(2.0分)设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是 ( )A:a&&bB:a<=bC:a||b+c&&b-cD:!((a<b)&&!c‖1)答案:D第9题(2.0分)若有声明"int x=2, y=1, z=0;",则下列关系表达式中有语法错误的是________.A:x>y=2B:z>y>xC:x>y==1D:x==(x=0, y=1, z=2)答案:A第10题(2.0分)运行下面程序,输出的结果是( ).main (){ int u=24,v=16,w;while(v){ w=u%v; u=v; v=w; }printf("%d\n",u);}A:6B:7C:8D:9答案:C第11题(2.0分)在以下各组标识符中,均可以用作变量名的一组是( ). A:a01,Int tB:table_1,a*.1C:0_a,W12D:for,point答案:A一、单选题1、有如下程序main(){int a=5,b=-3,c=4;Printf("%d%d\n",(++a,b++),c-2);}运行该程序的输出结果是( ).A) -42 B) -22C) -4 2D) -2 2答案:B2、设 int x=1, y=1; 表达式(!x||y--)的值是( ).A) 0B) 1C) 2D) -1答案:D3、以下程序段fun(int x, int y, int *z){ *z=x*x+y*y; }main(){ int a=20;fun(3,4,&a);printf("%d",a);}其输出结果是( ).A) 0B) 20C) 25D) 无定值答案:C4、如果a=1,b=2,c=3,d=4, 则条件表达式a>b?a:c>d?c:d 的值为( ).A) 1B) 2C) 3D) 4答案:D。

C语言试题(第2学期)及答案

C语言试题(第2学期)及答案
C语言试卷
考试科目:C语言试题(第2学期) 班次 姓名 A卷 学号 共 5 页 成绩
注:试卷做在后面答题试卷上。 1. 选择填空(选择一个正确答案,将其对应字母填在横线上) (30分) 1.Turbo C 2.0程序中,一个int整型数据能表示数据的范围为 C ; A:0~255 B:0~65535 C:-32768~32767 D:0~ 32767 2.在下列描述中,正确的字符常量是 B A:“a” B:‘\n’ C:‘ABC’ ; D:‘1234’ B
c[i]=c[len-i-1]; c[len-i-1]=t; } } void main() { char c[100]; gets(c); exe_1(c); puts(c); } #include<stdio.h> #include<string.h> void main() { char s1[29],s2[69],len; int i; gets(s1); len=strlen(s1); for(i=0;i<len;i++) s2[len-1-i]=s1[i]; for(i=0;i<len;i++) printf("%c",s2); }把数组 a中的数赋值给另一个数组b,并逆序输出。 #include<stdio.h> #define n 6 void main() { int a[n]={1,2,3,4,5,6},b[n]; int i; for(i=0;i<n;i++) b[n-i-1]=a[i]; for(i=0;i<n;i++) printf("%d ",b[i]); } }
A:2,4;

C语言试卷2及答案

C语言试卷2及答案

C语言试卷2及答案(总8页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--扬州大学试题纸系课程 C语言程序设计(A)卷2002—2003学年第2学期班级_________学号________姓名__________得分___________一、选择题(每题分,共30分):1、已知:char a; int b; float c; double d;则执行语句:c=a+b+c+d; 后,变量c的类型为。

A. charB. intC. floatD. double2、已有定义int x; float y; 且执行scanf(“%2d%f”,&x,&y);语句时,从第一列开始输入数据12345 67<回车>,则y的值是。

A. 无定值B.C.D.3、设有以下程序段int x=0; s=0;while (!x!=0) s+=++x;printf(“%d”,s);则。

A. 运行程序段后输出0B. 运行程序段后输出1C. 程序段中的控制表达式是非法的D. 程序段执行无限次4、若i为整型变量,则以下循环执行次数是。

for(i=2; i==0;) printf(“%d”, i--);A. 无限次B. 2次C. 1次次5、假设char ch=’a’, *p=&ch;,以下语句中,有语法错误的是 .A. (*p)++;B. ch+=—‘a’+’A’;C. toupper(ch)=ch;D. ch++;6、若说明:char *language[ ]={“VFP”,”C”,”VB”,”VC”,”JAVA”};则language[2]的值是。

A. 一个字符B. 一个地址C. 一个字符串D. 一个不定值7、C语言程序中,当调用函数时。

A. 实参和虚参可以共用存储单元B. 实参和虚参各占一个独立的存储单元C. 可以由用户指定是否共用存储单元D. 由计算机系统自动确定是否共用存储单元8、在程序中要使用语句:printf(“%s\n”, STRING);输出提示信息:“OK! ”(包括双引号),则应使用宏定义语句。

C语言题集(二)答案

C语言题集(二)答案

C语⾔题集(⼆)答案第3章顺序结构1.B解析:在C语⾔中,当⼀次输⼊多个数据的时候,数据之间要⽤间隔符,合法的间隔符可以是空格、制表符和回车符。

逗号不是合法的间隔符。

2.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。

3.C解析:①printf函数的浮点数缺省输出格式:在printf函数的输出中,若⽆输出宽度限制,每种数据都有⼀个缺省的输出宽度,⼀般浮点数的⼩数位数则是6位,不管输出格式是%f或%lf皆如此。

4.②printf函数的浮点数宽度限制输出:以%mf或%mlf格式输出浮点时,如果指定的宽度⼤于实际数据宽度,按指定宽度输出,且多余数补以空格;如果指定的宽度⼩于实际数据宽度,浮点数的整数部分将以实际数据(位数)输出。

⼩数部分按指定数输出,且对数据做四舍五⼊处理。

5.③printf的整数限宽输出:没有宽度制的整数原数输出。

在宽度限制于数的实际位数时,宽度说明⽆效,按数的实际位数输出。

6.D解析:在C语⾔所有的运算符中,逗号运算符的优先级最低。

C语中区分⼤⼩,所以APH和aph是两个不同的变量。

赋值表达式a=b表⽰将b的值付给a,⽽b本⾝的值保持不变;通过键盘可以向计算机输⼊允许的任何类型的数据。

选项D)中当从键盘输⼊数据时,对于整型变量可以输⼊整型数值和字符,对于实型变量可以输⼊实型数和整型数值等。

7.C解析:本题中,程序先执⾏语句 x=;,根据赋值运算的类型转换规则,先将double型的常量转换为int型,即取整为1,然后将1赋值给变量x。

接下来执⾏语句y=(x+)/;根据运算符的优先级,先计算⼩括号内,再计算除法,最后执⾏赋值运算。

⼩括号内的运算过程:先将整型变量x的值1转换为double型,然后与进⾏加法运算,得到中间结果。

接着进⾏除法运算,其结果⼩于,这⾥没有必要计算出精确值,因为接着进⾏赋值运算,赋值号左边的变量y的类型为整型,于是对这个⼩于的中间结果进⾏取整,结果为0,于是变量y的值为0,d*y的值也为0。

C语言期末试题2(带答案)

C语言期末试题2(带答案)

C语言期末试题2(带答案)13-14-2 48课时C语言模拟练习总共42题共100分答卷编号:12311112222211333答题开始时间:2014-06-09 10:52:09答题结束时间:2014-06-09 10:52:13考生姓名:翟方正考试时间:00:00:04分钟总得分:0分评卷人:系统自动评卷评卷时间:2014-06-09 10:52:13一、单选题(共15题,共30分)1. 在C语言中,回车换行符是()(2分)A.'\n'B.'\t'C.'\v'D.'\b'标准答案:A考生答案:2. 以下选项中,不能作为合法常量的是()(2分)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0标准答案:B考生答案:3. 若有语句int *point,A=4;和point=&A下面均代表地址的一组选项是()(2分)A.A,point,*&AB.&*A,&A,*pointC.*&point,*point,&AD.&A,&*point ,point标准答案:D考生答案:4. 设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是()(2分)A.x&&yB.x<=yC.x︱︱++y&&y-zD.!(x<y&& !z︱︱1)<="" p="">标准答案:D考生答案:5. 以下叙述中正确的是()(2分)A.C语言可以用来编写系统软件,也可以用来编写应用软件B.函数体不必用一对大括号{}括起来C.C程序的每一行只能写一条语句D.对一个C程序进行编译的过程可以发现注释中的拼写错误标准答案:A考生答案:6. 执行下面程序段后,c3中的值是()int c1=1,c2=2,c3;c3=c1/c2; (2分)A.0B.1/2C.0.5D.1标准答案:A7. 以下程序的输出结果是( )main(){ int a=12,b=12;printf("%d %d\n",--a,++b);} (2分)A.10 10B.12 12C.11 10D.11 13标准答案:D考生答案:8. 以下定义语句中,错误的是( ) (2分)A.int a[]={1,2};B.char *a[3];C.char s[10]="test";D.int n=5,a[n];标准答案:D考生答案:9. 以下程序的输出结果是()main(){int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);} (2分)A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=b 标准答案:D考生答案:10. main( ){int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7&&p[i]%3){k =k+ p[i]; i++;}printf("%d\n", k);}执行后输出结果是()(2分)A.58B.53C.38D.24标准答案:C考生答案:11. 以下程序段的输出结果是()int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z); (2分)A.3,2,0B.3,2,-1C.4,3,-1D.5,-2,-5考生答案:12. 若以下程序所生成的可执行文件名为file1.exe,则当在操作系统状态下输入下述命令行执行该程序时FILE1 CHINA BEIJING SHANGHAI程序的输出结果是()#includemain(int argc,char *argv[]){while (argc-->1){++argv;printf("%s ",*argv);}printf("\n");} (2分)A.CHINA BEIJING SHANGHAIB.FILE1 CHINA BEIJING SHANGHAIC.C B SD.F C B标准答案:A考生答案:13. 执行下述程序的输出结果是()#includeint power(int x,int y);main(){float a=2.6,b=3.4;int p;p=power((int)a,(int)b);printf("%d\n",p);}int power(int x,int y){int i,p=1;for (i=y;i>0;i--)p=p*x;return (p);} (2分)A.8B.9C.27D.81标准答案:A考生答案:14. 有以下程序main(){ int x[8]={8,7,6,5,0,0}, *s;s=x+3;printf("%d\n",s[2]);}A.随机值B.0C.5D.6标准答案:B考生答案:15. 执行下述程序的输出结果是()#includemain(){int aa[3][3]={{2},{4},{6}};int i,*p=&aa[0][0];for (i=0;i<2;i++){if (i==0)aa[i][i+1]=*p+1;else++p;printf("%d",*p);}printf("\n");} (2分)A.23B.26C.33D.36标准答案:A考生答案:二、判断题(共10题,共10分)1. C语言中,标识符的第一个字符可以是数字(1分) ( )标准答案:错误考生答案:2. "hello!"是合法的字符串常量表示形式(1分) ( )标准答案:正确考生答案:3. 若有定义int a[3][4];则a[1+1][0]是对数组a元素的正确引用形式(1分) ( )标准答案:正确考生答案:4. 在switch语句中使用continue语句与使用break语句作用相同(1分) ( )标准答案:错误考生答案:5. 用do-while语句构成循环时,只要while后的表达式为0时就结束循环(1分) ( )标准答案:正确考生答案:6. char a[]={0,1,2,3,4,5,6};不是正确的语句(1分) ( )标准答案:错误考生答案:7. 已经定义了指针变量p,且p指向变量a(即p=&a),则*p与a的含义相同。

C语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

C语言程序设计习题集第2章-(答案)基本数据类型及顺序结构程序设计

word格式-可编辑-感谢下载支持第2章基本数据类型及顺序结构程序设计一、选择题1、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定2、以下选项中不合法的标识符是(C)A)print B)FOR C)&a D)_003、可在C程序中用作用户标识符的一组标识符是(A)A)and B)Date C)Hi D)case_2007 y-m-d Dr.Tom Big14、以下选项中不属于字符常量的是(B )A)'C' B)"C" C)'\xCC0' D)'\072'5、以下选项中,合法的一组C语言数值常量是(B)A)028 B)12. C).177 D) 0x8A.5e-3 0Xa23 4e1.5 10,000-0xf 4.5e0 0abc 3.e56、以下正确的字符串常量是(A)A) "\ \ \" B) ' abc ' C)Olympic Games D) ""7、下列定义变量的语句中错误的是(D)。

A)int _int;B)double int_; C)char For;D)float USS8、下列变量定义中合法的是(A)。

A) short _a=1.le-1;B) double b=1+5e2.5;C) long do=0xfdaL; D) float 2_and=1e-3;9、以下定义语句中正确的是(C)A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;10、设有说明语句:char a=’\72’;则变量a(A)。

c语言试卷和答案2

c语言试卷和答案2

for (k=1; k<5; k++) {
if (k%2) printf(“#”);
else continue;
printf(“*”);
}
}
A)#*#* B)*#*#
程序3
#include <stdio.h>
void main()
{int i=0, n;
char s[10]= “298h01”;
n=0;
for(i=0; s[i]!= ‘\0’; i++)
if(s[i]<’9’ && s[i]>=’0’)
n=n*10+(s[i]-‘0’);
程序1【程序说明】输出1~1000之间所有满足各位数字的立方和等于它本身的数。
【程序】
#include <stdio.h>
void main()
{ int digit,k,m,s;
for(k=1;k<=1000;k++){
(24) ;
return x-1;
}
void main()
{ int y;
y=p(&x);
printf(“(%d,%d)”,x,y);
}
A)(-1,0) B)(1,-1) C)(1,0) D)出错
三、 程序填空题(每空2分,共16分)
A)p=’\0’ B)p=0 C)p=NULL D)p=EOF
(23)下列程序的输出结果是 。
#include <stdio.h>
int x;
int p( int *y)

《C语言程序设计》试题2及答案

《C语言程序设计》试题2及答案

《C语言程序设计》试题二 (1)一、填空题 (1)二、选择题 (2)三、阅读程序题 (5)四、程序填空题 (5)五、编程题 (7)《C语言程序设计》试题二答案 (8)《C语言程序设计》试题二一、填空题1、C语言中普通整型变量的类型说明符为int ,在内存中占4字节,有符号普通整型的数据范围是-32767~32768。

2、C语言中基本的数据类型有:整形、实型、字符型。

3、设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是-4。

4用体的各成员放到同一存储空间5、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2 。

6、有语句:char A[ ]={”I am a student”};该字符串的长度是14 ,A[3]= m。

7、符号”a”和’a’的区别‘a’是字符常量在内存中占一个字节”a”是字符串常量在内存中占两个字节。

8、下列程序的输出结果是7,1。

int ast(int x,int y,int * cp,int * dp){ *cp=x+y; *dp=x-y; }main(){ int a=4,b=3,c,d;ast(a,b,&c,&d);printf("%d,%d/n",c,d); }二、选择题1、以下选项中属于C语言的数据类型是(B)。

A. 复合型B. 双精度型C. 逻辑型D. 集合型2、以下说法中正确的是(C)。

A. C语言程序总是从第一个的函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分3、选出下列标识符中不是合法的标识符的是(D)。

A. hot_doB. cat1C. _priD. 2ab4、下列描述中不正确的是(c)。

C语言各章节复习题(带答案) 2

C语言各章节复习题(带答案) 2

一、C语言概述练习题选择1.一个C程序的执行是从。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。

A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。

A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。

A)一个主程序和若干个子程序组成B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。

A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。

A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件7.以下叙述正确的是。

A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。

C语言 习题二 参考答案

C语言 习题二 参考答案

第二章:C程序的基本结构一、单项选择题1、以下不是C语言的特点的是________。

A)语言的表达能力B)语言定义严格 C)数据结构系统化 D)控制流程结构化2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。

A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行3、以下不是二进制代码文件是________。

A)标准库文件 B)目标文件C)源程序文件 D)可执行文件4、下面个选项组中,均属于C语言关键字的一组是________。

A)auto,enum,include B)switch,typedef,continueC)signed,union,scanf D)if,struct,type5、下面四组字符串中,都可以用作C语言标识符的是________。

A)print B)I \am C)signed D)if_maf scanf 3mf ty_prmx_2d mx_ a.f x1#aMb6 AMB A&B 5XY6、以下不属于流程控制语句的是_________。

A)表达式语句 B)选择语句 C)循环语句 D)转移语句7、下面描述中,不正确的是________。

A)C语言的函数体由一系列语句和注释组成。

B)注释内容不能单独写在一行上。

C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。

D)scanf和printf是标准库函数而不是输入和输出语句。

8、下面描述中,正确的是________。

A)主函数的花括号必须有,而子函数中的花括号是可有可无的。

B)一个C程序行只能写一个语句。

C)主函数是程序启动时的唯一入口。

D)函数体包含了函数说明部分。

二、填空题1、一个完整的C程序至少要有一个________函数。

(主函数)2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。

(编译系统)3、C语言是以________为基本单位、整个程序由________组成。

C语言基础题及答案2

C语言基础题及答案2

第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。

A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从 B 开始执行。

A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以 D 。

A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是: C 。

A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是 D 。

A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是:。

?A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是: C 。

A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是: B 。

A. ‘\2’B. ""C. ‘3’D. ‘\483’9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。

int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. W += -2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以 D 形式存放。

A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是: A 。

C语言程序设计复习题二及参考答案

C语言程序设计复习题二及参考答案

C语言程序设计复习题二一.单项选择题1.按照C语言的规定,能作为用户标识符的是()。

A)int B)5a C)abc_123 D)unsigned2.编译操作的功能是把源程序转换成()。

A)源程序B)目标程序C)可执行程序D)汇编程序3.定义下面语句,编译会出错的是()。

A)char a='x'; B)char a='\t'; C)char a='cc'; D)char a='\101';4.以下选项中正确的定义语句是()。

A)double x; y; B)double x=y=7; C)double x=7, y=7; D)double, x, y;5.若有定义int x, y;并已正确给变量赋值,则以下选项中与表达式(x-y) ? (x++): (y++)中的条件表达式(x-y)等价的是()。

A)(x-y>0) B)(x-y<0) C)(x-y<0 || x-y>0) D)(x-y==0)6.以下关于long、int和short类型数据占用内存大小的叙述中正确的是()。

A)均占4个字节B)根据数据的大小来决定所占内存的字节数C)由用户自己定义D)由C语言编译系统决定7.设有定义:int x=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A)x++ B)x+=1 C)++x D)x+18.若有定义语句:int x=10;,则表达式x-=x+x的值为()。

A)-20 B)-10 C)0 D)109.有以下程序void main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是()。

A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,110.以下叙述中正确的是()。

A)C语言是一种非结构化程序设计语言B)结构化程序有顺序、分支、循环三种基本结构组成C)使用三种基本结构构成的程序只能解决简单问题D)结构化程序设计不提倡模块化的设计方法11.有以下程序#include <stdio.h>void main(){ char e1,e2;e1=’A’+’8’-‘4’;e2=’A’+’8’-‘5’;printf(“%c,%d\n”,e1,e2);}已知字母A的ASCII码为65,程序运行后的输出结果是()A)E,68 B)D,69 C)E,D D)输出无定值12.有以下程序void main(){ int a=0,b=0;a=10; /*给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b);}程序运行后输出结果是()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章顺序结构1.B解析:在C语言中,当一次输入多个数据的时候,数据之间要用间隔符,合法的间隔符可以是空格、制表符和回车符。

逗号不是合法的间隔符。

2.B解析:本题中a的值为6,b的值为8,最后s的值为8,s*=s等价于s=s*s。

3.C解析:①printf函数的浮点数缺省输出格式:在printf函数的输出中,若无输出宽度限制,每种数据都有一个缺省的输出宽度,一般浮点数的小数位数则是6位,不管输出格式是%f或%lf皆如此。

②printf函数的浮点数宽度限制输出:以%mf或%mlf格式输出浮点时,如果指定的宽度大于实际数据宽度,按指定宽度输出,且多余数补以空格;如果指定的宽度小于实际数据宽度,浮点数的整数部分将以实际数据(位数)输出。

小数部分按指定数输出,且对数据做四舍五入处理。

③printf的整数限宽输出:没有宽度制的整数原数输出。

在宽度限制于数的实际位数时,宽度说明无效,按数的实际位数输出。

4.D解析:在C语言所有的运算符中,逗号运算符的优先级最低。

C语中区分大小,所以APH和aph是两个不同的变量。

赋值表达式a=b表示将b的值付给a,而b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。

选项D)中当从键盘输入数据时,对于整型变量可以输入整型数值和字符,对于实型变量可以输入实型数和整型数值等。

5.C解析:本题中,程序先执行语句x=1.2;,根据赋值运算的类型转换规则,先将double型的常量1.2转换为int型,即取整为1,然后将1赋值给变量x。

接下来执行语句y=(x+3.8)/5.0;根据运算符的优先级,先计算小括号内,再计算除法,最后执行赋值运算。

小括号内的运算过程:先将整型变量x的值1转换为double型1.0,然后与3.8进行加法运算,得到中间结果4.8。

接着进行除法运算4.8/5.0,其结果小于1.0,这里没有必要计算出精确值,因为接着进行赋值运算,赋值号左边的变量y的类型为整型,于是对这个小于1.0的中间结果进行取整,结果为0,于是变量y的值为0,d*y的值也为0。

6.C解析:在C语言中,对于不同类型的数据用不同的格式字符,其中,“%d”是按整型数据的实际长度输出,“%md”中,m为指定的输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。

7.D解析:整型变量的输出形式有:%d,%o,%x,%u等,%x是以十六进制无符号形式输出整数。

十六进制数同样也可以想%md一样按%mlx 输出指定宽度的长整型数。

8.A解析:该题考查的是C语言中自减运算符和逗号表达式的应用。

自减运算符位于变量之前时,先使变量的值减1,再进行赋值运算。

逗号表达式的一般形式为:表达式1,表达式2,其求解过程是:先求解表达式1,再求解表达式2,整个逗号表达式的值是表达式2的值。

9.B解析:本题中,“%d %d %d”表示按整型数形式输入数据,输入数据时,在两个数据之间以一个或多个空格间隔,也可以用回车键或Tab键。

选项B)中不应该使用逗号。

10.B解析:scanf函数的一般格式是:scanf(格式控制,地址表列)该格式中,地址表列中应是变量地址,而不是变量名。

11.D解析:在C语言中,自增1运算符记为“++”,其功能是使变量的值自增1。

自减1运算符记为“--”,其功能是使变量值自减1。

自增1,自减1运算符均为单目运算,都具有右结合性。

可有以下几种形式:++i i 自增1后再参与其他运算。

--i i 自减1后再参与其他运算。

i++ i 参与运算后,i的值再自增1。

i-- i 参与运算后,i的值再自减1。

在理解和使用上容易出错的是i++和i--。

特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细解析。

12.B解析:对于逗号表达式中的第一个表达式等价为a=15;第二个表达式的值为15×4=60,此时变量a的值仍未改变还是15,第三个表达式的值为b的值。

13.A解析:此题考查有关标准设备的知识。

在多数C语言版本中,stdio.h文件至少定义了四种标准设备文件,可以直接引用不必含有打开操作,包括:标准输入文件指针stdin缺省为键盘;标准输出文件指针stdout缺省为显示器;标准错误输出文件指针stderr缺省为显示器;标准打印输出文件指针stdprn指打印机;此外,还可能包括如辅助设备等标准文件指针,且多数文件指针可以被重新定向到其他设备。

14.C解析:在使用scanf函数时,我们必须要注意以下问题:①在用scanf函数给普通变量输入数据时,在变量名前没有写地址运算符&。

如scanf(″%d%d″, x, y);是错误的。

正确的应为scanf(″%d%d″, &x, &y);。

2)在scanf函数调用语句中,企图规定输入实型数据的小数位。

如执行以下语句:scanf(″%6.2f″, &a);C语言规定是不允许指定输入数据的宽度的。

3)是错误不允许输入数字宽度。

用scanf函数输入数据时,必须注意要与scanf语句中的对应形式匹配。

如:scanf(″%d,%d″,&x, &y);若按以下形式输入数据:2 4是不合法。

数据2和4之间应当有逗号。

本题选项A)中后面省略了符号&,其他选项也有省略逗号的错误,只要明白了以上解析,可以说,scanf函数的重要用法已经在我们掌握之中了。

15.A解析:本题中,x原指定为float型,进行强制类型运算后得到一个int型的中间变量,它的值等于x的整数部分,而x的类型不变,仍为float型16.B【命题目的】考查格式化输出函数的掌握情况。

【解题要点】表达式n=(k%m,k/m)实际上是将k/m的结果赋值给了n。

【错解分析】逗号表达式中最后一个表达式的值是该逗号表达式的值,所以输出结果为k/m。

17.C【命题目的】考查格式化输入函数的掌握情况。

【解题要点】若在scanf的格式控制串中插入了其他字符,则在输入时要求按一一对应的位置原样输入这些字符。

【错解分析】由于scanf的格式控制串中插入了"a\\"、逗号和"b="等字符,所以输入时候应该一一对应地在对应位置上输入这些字符。

【考点链接】格式化输出也是在对应的位置上输出对应的插入的其他字符。

填空题:1.解析:在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。

2.16解析:赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a的值由于赋值为8,而不是0a+=8a=a+8a=16第4章选择结构选择题:1.A解析:该题目的关键是要搞清楚该程序执行了哪几条语句。

由于x的值等于1,所以switch结构中,程序从case 1后面的语句开始执行,又因为case 1后面的语句没有以break结束,所以程序要继续往下执行case 2后面的语句。

所以,该程序共执行了这三条语句:a++;a++;b++;因此,变量a和b最后的值应该为2和1。

2.C解析:该题目的关键是要搞清楚“&&”和“||”两个逻辑运算符的运算功能。

运算符“&&”和“||”是双目运算符,要求有两个运算量。

且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。

只要前面为假,就不必判别后面的值。

而逻辑或则为只要前为真,就不必判别后面的值;只有前为假,才判别后。

本题中j++值为真,不进行k++的运算,所以k的值保持不变。

3.C解析:该题目测验考生对if...else if结构的理解,比较简单。

x的值满足x<10.0的关系,所以程序将执行y=1.0/x;语句,y的值应该等于0.5。

最后,用printf函数输出时,%f的输出格式为小数点后保留6位。

4.B解析:C语言规定的运算优先级由高到低分别是逻辑非、算术运算、逻辑或。

所以先计算!x,值是0,然后再计算y--,由于是后缀运算符,所以y在本次运算中的值仍然是1,最后计算0||1,值为1。

5.A解析:本题考查的是三目运算符的用法,三目运算符的形式为(表达式1)?(表达式2):(表达式3)。

当(表达式1)的值为真时,求(表达式2)的值为整个表达式的值;如果(表达式1)的值为假,则求(表达式3)的值为整个表达式的值。

题中,表达式x>12的结果为假,所以执行的语句是x-12,最终y的值应该是0。

6.A解析:在C程序中,判断逻辑值时,用非0表示真,用0表示假。

逻辑表达式计算时,逻辑表达式值为真是用1表示的,若逻辑表达式的值为假,则用0表示。

7.C解析:此题综合考查多种运算符的使用;首先计算表达式a<=25&&b--<=2 &&c的值,很容易看出b--<=2的值为假,因此表达式为假;根据三目运算的特点,由于前面的表达式为假,应执行printf(“###a=%d,b=%d,c=%d\n”,a,b,c),应注意a的值依然为25,b的值经过b--运算后改变为13,而c的值仍为19。

8.D解析:本题考查if语句中的一种表达方式,即:if…else if…。

该表达式的语句是:if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3else语句4……本题执行else y=1.0,并且以“%f”输出。

9.D解析:选项D)为两条语句。

10.D解析:本题考查C语言的逻辑表达式及逻辑或(“||”)运算符的用法。

“||”表示或的意思,“|”是按位或的意思,“&&”是并且的意思,C语言中没有“or”。

11.C解析:if语句嵌套使用时,应当注意if 与else的配对关系,else总是与它上面的最近的if配对。

因此,本题中先判断(a<b),表达式值为0,则不执行下面的if语句,直接跳到printf语句中(c的值不变)。

12.D解析:该题考查逻辑与“&&”和逻辑或“||”以及逻辑非“!”符号的用法。

选项A)即3&&4为真,选项B)即3<=4为真,选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真,此时选项C)变为1&&-1为真。

选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。

13.B解析:条件运算符要求有三个操作对象,称三目(元)运算符,它是C语言中惟一的一个三目运算符。

条件表达式的一般形式为:表达式1?表达式2:表达式3其求解顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。

相关文档
最新文档