c语言第3-4章练习题有答案

合集下载

c语言练习题-第三章答案

c语言练习题-第三章答案

C语言练习题---第三章1、有以下程序#include<stdio.h>main(){short c=124;c=c_______;printf(“%d\n”、C);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B)|248 C)&0248 D)<<12、以下程序运行后的输出结果是2008。

#include<stdio.h>main(){int a=200,b=010;printf(”%d%d\n”,a,b);}3、有以下程序#include<stdio.h>main(){int x,y;scanf(”%2d%ld”,&x,&y);printf(”%d\n”,x+y);}程序运行时输入:1234567程序的运行结果是34579。

4、有以下程序#include <stdio.h>Void main(){char a,b,c,d;scanf(”%c%c”,&a,&b);c=getchar(); d=getchar();printf(”%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:()A、1234B、12C、12D、123 345、有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf(”%d\n”,k++);}程序运行后的输出结果是D(A)12 (B)11 (C)10 (D)96、有以下程序#include<stdio.h>void fun (char*c,int d){*c=*c+1;d=d+1;printf(”%c,%c,”,*c,d);}main(){char b=’a’,a=’A’;fun(&b,a); printf(”%c,%c\n”,b,a);}程序运行后的输出结果是AA)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B7、以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(”%d\n”,d);}程序运行后的结果是CA)0 B)-12 C)-20 D)108、有以下程序#include <stdio.h>main(){int a=2,b=2,c=2;printf(”%d\n”,a/b&c);}程序运行后的结果是A)0 B)1 C)2 D)39、将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。

C语言3、4章测验题(参考)_3437

C语言3、4章测验题(参考)_3437

C 语言第 3、4 章测试题请将正确选项填在答题卡相应位置上,答在试卷上不得分。

一、单选题 : (1 分 /题,共 38题, 38 分)1.设有 int x=11; 则表达式 (x++ * 1/3)的值是 :A) 3B)4 C)11D)122.下列程序的输出结果是 :A) 3B)3.2C) 0D) 3.07main(){ double d=3.2; int x,y;x=1.2; y=(x+3.8)/5.0;printf("%d \n", d*y);}3.下列程序执行后的输出结果是 (小数点后只写一位 )A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.6 6.6 D) 6 6 6.7 6.0 main(){ double d; float f; long j; int i;i=f=j=d=20/3;printf("%d %ld %f %f \n", i,j,f,d);}4.下列变量定义中合法的是A) short _a=1-.le-1; B) double b=1+5e2.5;C) long do=0xfdaL;D) float 2_and=1-e-3;5.设 int x=1, y=1; 表达式 (!x||y--) 的值是 : A) 0B) 1C) 2D) -16.下列程序执行后的输出结果是 : A) G B) H C) I D) Jmain(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }7.下列程序的运行结果是A) a=%2,b=%5B) a=2,b=5C) a=d, b=d D) a=%d,b=%d#includemain(){ int a=2,c=5;printf("a=%d,b=%d\n",a,c);}8.若变量已正确定义并赋值,下面符合 C 语言语法的表达式是A) a:=b+1B) a=b=c+2C) int 18.5%3D) a=a+7=c+b9.若已定义 x 和 y 为 double 类型,则表达式x=1 ,y=x+3/2 的值是A)1B)2C) 2.0D) 2.510.若变量 a、i 已正确定义,且 i 已正确赋值,合法的语句是A) a==1B) ++i;C) a=a++=5;D) a=int(i);11.若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后, c3 中的值是A) 0B) 0.5C) 1D) 2 12. 有如下程序main0{ int y=3,x=3,z=1;printf( “ %d %d\n ”,(++x,y++),z+2);}运行该程序的输出结果是A)3 4B) 42C)4 3D)3 313.能正确表示逻辑关系:“a≥ =10 或 a≤ 0”的 C 语言表达式是A) a>=10 or a=0 || a=10B)a>=10 && a<=0a) a>=10 || a<=0D)a>=10 and a<=014.以下所列的 C 语言常量中,错误的是A) 0xFF B) 1.2e0.5C) 2L D) '\72'15.以下变量 x.、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子语言表达式是A) x/y*z B) x*(1/(y*z))C) x/y*1/z D) x/y/z16.a 为 int 类型,且其值为 3,则执行完表达式 a+=a-=a*a 后, a 的值是A)-3B)9C)–12D)617. 设 x 、y、 t 均为 int 型变量,则执行语句:x=y=3;t=++x||++y; 后, y 的值为x xyz 的CA) 不定值B)4C)3D)118. 若变量已正确说明为float 类型,要通过语句scanf("%f %f %f ",&a,&b,&c);给a赋于10.0,b 赋予 22.0, c 赋予 33.0,不正确的输入形式是:A) 10< 回车 >B) 10.0,22.0,33.0< 回车 >C) 10.0<回车 >D) 10 22<回车 > 22<回车 >22.0 33.0<回车 >33<回车 >33<回车 >19.在 C 语言提供的合法的关键字是A)swicth B)include C)Case D)default20.在 C 语言中 ,合法的字符常量是A)'\084'B)'\x43'C)'ab'D)"\0"21. 若已定义 x 和 y 为 double 类型 , 则表达式 :x=1,y=x+3/2 的值是A)1B)2C)2.0D)2.522.若有以下定义和语句 :int u=010, v=0x10, w=10;printf("%d,%d,%d\n,u,v,w);则输出结果是 :A)8,16,10B)10,10,10C)8,8,10D)8,10,1023.若有以下定义和语句char c1='b',c2='e';printf("%d,%c\n",c2-c1,c2-'a'+"A");则输出结果是 :A)2,M B)3,E C)2,E D)输出项与对应的格式控制不一致,输出结果不确定24.若有以下定义 :char a; int b; float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double25. 设 x,y,z 和 k 都是 int 型变量 , 则执行表达式 :x=(y=4,z=16,k=32) 后 , x 的值为A4B16C32D5226. 设有如下的变量定义:int i =8,k ,a,b ; unsigned long w=5;double x=1,42,y=5.2;则以下符合 C 语言语法的表达式是A) a+=a-=(b=4)*(a=3) B )x%(-3); C )a=a*3=2 D) y=float(i)27.假定有以下变量定义 :int k=7 ,x=12;则能使值为3的表达式是A) x%=(K%=5)B) x%=(k-k%5)C) x%=k-k%5 D ) (x%=k)-(k%=5)28.以下叙述中正确的是A)输入项可以是一个实型常量 ,如: scanf("%f",3.5);B )只有格式控制 , 没有输入项 , 也能正确输入数据到内存, 例如 :scanf("a=%d ,b=%d")'C)当输入一个实型数据时 ,格式控制部分可以规定小数点后的位数 , 例如 :scanf("%4.2f",&d);D)当输入数据时 ,必须指明变量地址 , 例如 : scanf("%f",&f);29.设 x 和 y 均为 int 型变量 ,则以下语句 :x+=y;y=x-y;x-=y; 的功能是A) 把 x 和 y 按从大到小排列B) 把 x 和 y 按从小到大排列C)无确定结果D) 交换 x 和 y 中的值30. 以下程序的输出结果是: A ) 12 12 B ) 11 12C) 11 13D)12 13main( ){ int a=12,b=12; printf("%d%d\n",a--,++b);}31.以下选项中属于 C 语言的数据类型是A) 复数型B) 逻辑型C)双精度型D) 数据型32.在 C 语言中,不正确的int 类型的常数是A)32768B)0C)037 D)0xAF33.语句 : printf("%d" , (a=2)&&(b= -2));的输出结果是A) 无输出B)结果不确定C)-1D)134.当 c 的值不为 0 时,在下列选项中能正确将 c 的值赋给变量 a、 b 的是A)c=b=a ; B) (a=c) ‖ (b=c); C) (a=c)&&(b=c) ; D) a=c=b ;35.不正确的整数是A)018B) 0x19C) -16D) 19L36、能正确表示[-10,60]的C语言表达式是A)60≥x≥- 10 B )x>=-10&&x<=60 C) x>=-10||x<=60 D) 60>=x>=-1037、以下不正确的叙述是A)在 C程序中所用的变量必须先定义后使用。

(完整版)C语言各章练习题

(完整版)C语言各章练习题

目录第一章程序设计和C语言 (2)第二章最简单的C程序设计 (2)第三章选择结构程序设计 (4)第四章循环结构程序设计 (7)第五章数组 (11)第六章函数 (14)第七章指针 (18)第一章程序设计和C语言一、选择题:1.一个C程序的执行是从( )A、本程序的main函数开始,到main函数结束B、本文件第一个函数开始,到本文件的最后一个函数结束C、本程序的main函数开始,到本文件的最后一个函数结束D、本文件的第一个函数开始,到本文件的main结束2.以下说法不正确的是()A、一个C源程序可由一个或多个函数组成B、一个C程序必须包含一个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面3.C语言规定:在一个源程序中,main函数的位置()A、必须在开始B、必须在系统调用的库函数的位置C、可以任意D、必须在最后4.源程序program.c经编译产生的目标文件和连接后产生的可执行文件是( )A、program.bak和program.objB、program.obj和program.exeC、program.exl和program.cD、program.bak和prgram.exe第二章最简单的C程序设计一、选择题1.是合法的用户自定义标识符的( )A、ah-spksB、doubleC、<ctrl>D、_myapple2.以下正确的C语言标识符是()A、%xB、a+bC、a123D、test!3.以下不能定义为用户标识符的是( )A、V oidB、b_2C、intD、name4.以下选项中可作为C语言合法整数的是( )A、11010(B)B、0583C、x2b2D、0xafb5.VC++6.0中的短整型数值在计算机中占用的字节个数是( )A、1B、2C、3D、46.设short int型的数据长度为2个字节,则unsigned short 类型数据的取值范围是()P34A、均为2个字节B、0至65535C、-3276至32767D、-256至255 7.以下选项中可作为C语言合法常量的是()(指数E或e前必须有数字,后面必须有整数)A、-80.0B、-080C、-8e1.2D、-80.0e8.在VC++6.0编译环境下,下列式中,值不为4的表达式是()P34,double为8字节A、sizeof(unsigned long)B、sizeof(long)C、sizeof(unsigned int)D、sizeof(double)9.设有说明语句:char a=’\123’;则变量a( )一个ascii字符A、包含1个字符B、包含2个字符C、3个字符D、说明不合法10.设x为一数字字符,则其所对应的十进制数值为()。

C语言各章节练习题(含答案)

C语言各章节练习题(含答案)

一、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) 若干子程序组成二、数据类型、运算符与表达式选择. 1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为。

x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 522.下列四组选项中,均不是C语言关键字的选项是。

A) define IF type B) getc char printfC) include case scanf D) while go pow3.下列四组选项中,均是不合法的用户标识符的选项是。

A) W P_0 do B) b-a goto int C) float la0 _A D) -123 abc TEMP4.下列四组选项中,均是合法转义字符的选项是。

A)‘\”’‘\\’‘\n’ B)‘\’‘\017’‘\”’ C)‘\018’‘\f’‘xab’ D)‘\\0’‘\101’‘xlf’5.下面不正确的字符常量是。

A) “c”B) ‘\\’’C) ‘’D) ‘K’6.以下叙述不正确的是。

A) 在C程序中,逗号运算符的优先级最低B) 在C程序中,MAX和max是两个不同的变量C) 若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,而b中的值不变D) 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值7.以下叙述正确的是。

C语言实验报告第3章答案

C语言实验报告第3章答案

3.2基础实验一、程序分析1.以下程序若输入’a’,则输入格式为:__c1=a____;运行结果为:___a,A↙_____。

#include<stdio.h>intmain( ){char c1,c2;scanf(“c1=%c”,&c1);c2=c1-32;printf(“%c,%c\n”,c1,c2);return 0;}2.以下程序如果使得a的值为2、b的值为3,则输入格式为:_a=2,b=3__;运行结果为:_2,3↙_。

#include<stdio.h>intmain( ){ int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“%d,%d\n”,a,b);return 0;}3.以下程序若输入12.3、7.6、1.1,则输入格式为:_12.3 7.6 1.1__;运行结果为:_aver=7.00___。

#include<stdio.h>intmain( ){ floata,b,c,d;scanf(“%f%f%f”,&a,&b,&c);d=(a+b+c)/3;printf(“aver=%.2f”,d);return 0;}二、程序填空1.输入一个四位整数,求各位数字之和(如1234,则结果为1+2+3+4=10)。

若输入3562,则运行结果为:___3+5+6+2=16↙____________。

#include <stdio.h>intmain( ){ int n,a,b,c,d,m;scanf(“%d”,&n);a=n%10;b=(n/10)%10;c=(n/100)%10;d=__n/1000________;m=__a+b+c+d________;printf(“%d+%d+%d+%d=%d\n ”, d,c,b,a,m);return 0;}2.给定一个华氏法表示的温度值,将其转换为摄氏法表示的温度,转换公式为则运行结果为:__f=64.00,c=17.78↙__。

C语言课后习题参考答案

C语言课后习题参考答案

C语言课后习题参考答案第一章:基础知识问题1:C语言的发展历史及特点C语言是由贝尔实验室的肯·汤普逊和丹尼斯·里奇在20世纪70年代初开发的一种高级程序设计语言。

它以其简洁、高效和可移植性而闻名。

C语言被广泛应用于系统级编程、嵌入式系统和科学计算等领域,并成为其他编程语言的基础。

问题2:C语言的基本数据类型及其存储范围C语言的基本数据类型包括字符型(char)、整型(int)、浮点型(float)、双精度浮点型(double)和空类型(void)。

它们的存储范围如下:- char:-128 到 127 或 0 到 255- int:-32,768 到 32,767 或 0 到 65,535- float:3.4E-38 到 3.4E38- double:1.7E-308 到 1.7E308- void:无特定存储范围问题3:如何在C语言中输出语句?在C语言中,可以使用printf函数来输出语句。

它的基本语法为:```cprintf("要输出的内容");```问题4:定义变量的语法规则在C语言中,定义变量的语法规则如下:```c数据类型变量名;```例如,定义一个整型变量x:```cint x;```问题5:如何进行变量的赋值?变量的赋值可以使用赋值运算符(=)。

例如,将一个整型常量10赋值给变量x:```cx = 10;```第二章:控制结构问题1:if语句的语法结构if语句用于根据条件执行不同的代码块。

它的基本语法结构如下:```cif (条件) {// 条件为真时执行的代码}```问题2:switch语句的用法及语法结构switch语句用于根据不同的表达式值执行相应的代码块。

它的基本用法及语法结构如下:```cswitch (表达式) {case 值1:// 当表达式的值等于值1时执行的代码break;case 值2:// 当表达式的值等于值2时执行的代码break;default:// 当表达式的值与所有case都不匹配时执行的代码break;}```问题3:循环语句的分类及语法结构C语言中的循环语句包括for循环、while循环和do-while循环。

c语言第3-4章练习题有答案

c语言第3-4章练习题有答案

第3-4章练习题一、选择题1. 以下错误的字符串赋值或赋初值方式是:(A)char str1[]=”string”, str2[]=”12345678”;st r cpy(str2,str1);(B)char str[7]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};(C)char str[10] ;str =”string”;(D)char *str; str=”string”;2. 数组定义中不正确的是:(A)int a[2][3]; (B)int b[][3]={0,1,2,3};(C)int c[100][100]={0}; (D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};3. 以下对一维数组a正确初始化的是:(A)int a[10]=(0,0,0,0,); (B)int a[10]={};(C)int a[10]={0}; (D)int a[10]=(10*2);4.以下选项中,不能正确赋值的是:(A)char s1[10];s1="Ctest"; (B)char s2[]={'C', 't', 'e', 's', 't'};(C)char s3[20]="Ctest"; (D)char *s4="Ctest\n"5.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:(A)i=*p; (B)*p=*&j; (C)i=&j; (D)i=**p;6. 下面各语句行中,不能正确进行字符串操作的语句行是:(A) char st[10]={"abcde"}; (B) char s[5]={'a','b','c','d','e'};(C) char *s; s="abcde"; (D) char *s; scanf("%s",s);7.设有如下的程序段,执行上面的程序段后,*(ptr+5)的值为:char str[ ]="Hello"; char *ptr; ptr=str;(A) 'o' (B) '\0' (C)不确定的值(D) 'o'的地址8. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));(A)5 (B)14 (C)8 (D)输出项不合法,无正常输出9.以下程序段给数组所有的元素输入数据,请选择正确答案填入。

C语言练习册1-4章答案

C语言练习册1-4章答案

目录第1章C语言程序设计概述 (1)第2章C语言的基本数据类型与表达式 (2)第3章C语言程序的控制结构 (3)第1节顺序结构程序设计 (3)第2节选择结构程序设计 (6)第3节循环结构程序设计 (15)第4章函数及预处理命令 (22)第1章C语言程序设计概述一、选择题二、填空题1、一_、主、主2、.C 、.OBJ 、.EXE3、“{”、“}”、变量说明、执行语句4、主函数5、/* 、*/、运行三、编程题1、(1) 解:#include “stdio.h”void main(){printf(“ProgrammingLanguage\n”); }(2) 解:#include “stdio.h”void main(){printf("***************\n");printf("\n");printf(" Welcome \n"); printf("\n");printf("***************\n");}2、解main(){ int a,b,x,y,m,n;a=25;b=5;x=a+b; y=a-b; m=a*b; n=a/b;printf(“x=%d,y=%d,m=%d,n=%d\n”,x,y,m,n);}第2章C语言的基本数据类型与表达式一、选择题二、填空题1、_ 十、八、十六2、int 、float、double3、34、-165、16、 27、10、 68、99、‘f’10、(m/10%10)*100+m/100*10+m%10 11、3.500000 12、 113、 414、1.500000 、 6.70000015、1 、-2 、1 、4三、程序分析题1、1112、4,33、14、11,19,30,15、65,896、a=%d,b=%d第3章C语言程序的控制结构第1节顺序结构程序设计一、选择题二、填空题1、_a=5.0,4,c=32、03、b、b、 b4、-145、未指明变量k的地址、格式控制符与变量类型不匹配6、scanf(“%d%f%f%c%c”,&a,&b,&x,&c1,&c2);3 6.5 12.6aA7、A B <CR>8、10 15 109、123 、45.000000 10、不确定值11、261 12、1613、2,1三、程序分析题1、 4 、52、203、无正确值4、x=98 y=765.000000 z=4321.0000005、8796、10 , A , 10四、编程题1、解#include “stdio.h”main(){float c,f;printf("请输入一个华氏温度\n");scanf("%f",&f);c=5.0/9.0*(f-32);printf("摄氏温度为:%6.2f\n",c);}2、解#include “stdio.h”main(){int a,b,c,x;printf("请输入一个三位整数:");scanf("%d",&x);a=x/100;b=x/10%10;c=x%10;printf("输出结果:%d%d%d\n",c,b,a);}3、#include <stdio.h>main(){int hour,min,tran;printf("Enter time:");scanf("%d%d",&hour,&min);printf("before:%dh%dmm\n",hour,min);tran=hour*60+min;printf("after:%dmin\n",tran);}4、#include <stdio.h>main(){int a,n,i;float p,result=1;printf("Input a,n,p:");scanf("%d,%d,%f",&a,&n,&p);for(i=1;i<=n;i++)result=result*(1+p); //求(1+p)的n次方result=a*result-a;printf("\n到期利息为:%f\n",result);}5、#include <stdio.h>#define PI 3.14159main(){float r,h,l,s,v;printf("Input r,h:");scanf("%f,%f",&r,&h);l=2*PI*r;s=PI*r*r;v=PI*r*r*h;printf("r=%f,h=%f\nl=%f,s=%f,v=%f\n",r,h,l,s,v);}6、#include<stdio.h>void main(){ int a,b;long c;scanf("%d%d",&a,&b);c=(b%10)*1000+(b/10)*100+(a%10)*10+a/10; /*将a数的十位和个位数依次在c 数个位和十位上, b数的十位和个位数依次放在c数的百位和千位*/printf("The result is:%ld\n",c);}第2节选择结构程序设计一、选择题二、填空题1、&& || !2、x>2&&x<3||x<-103、y%2==14、x<z||y<z5、((x<0&&(y<0))||((x<0)&&(z<0))||((y<0)&&(z<0))6、17、08、19、0 10、0 11、012、113、014、[1] __ y<z ___ [2] ___ x<z ___[3] x<y15.[1] __ c=c+5____[2] ____ c=c-21_16、[1] __ u,v ____[2] __ x>y _____[3] u>z17、[1] ____ y%4==0&&y%100!=0 _[2] __ f=0____18、[1]gz<850 [2] (gz>=850)&&(gz<1500)[3] (gz>=1500)&&(gz<2000) [4] rfgz=gz-gz*0.015[5] rfgz=gz-gz*0.020019、[1] __10_____[2] ____9 ___[3] 11三、程序分析题1、 1,12、 1,03、5858584、your¥3.0yuan/xiaoshi5、2nd class postage is 14p6、 F7、 4:05 PM8、 b=29、 0.60000010、a=2,b=1 11、 passwarm四、编程题1、#include “stdio.h”void main(){int n;printf(“Input a number:\n”);scanf(“%d”,&n);if((n%5==0)&&( n%7==0)) printf(“yes\n”);else printf(“no\n”);}2、#include “stdio.h”void main(){int a,b;printf(“Input two number:\n”);scanf(“%d%d”,&a,&b);if(a*a+b*b>100) printf(“%d\n”,(a*a+b*b)/100); else printf(“%d\n”,a+b);}3、main(){float x;int y;printf("\n input x:");scanf("%f",&x);switch(x<0){case 1:y=-1;break;case 0:switch(x==0){case 1:y=0;break;default:y=1;}}printf("\n y=%d",y);}4、#include <stdio.h>#include <math.h>main(){float x,y;printf("Input x:");scanf("%f",&x);if(x<0)y=x*x*x;else if(x==0)y=0;elsey=sqrt(x);printf("x=%f,y=%f\n",x,y); }5、#include <stdio.h>main(){int n,n1,n2,n3,n4,n5,nn;printf("Enter n(n>=0 && n<99999):");scanf("%d",&n);if(n>=10000&&n<=99999){printf("n是5位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=(n/1000)%10;n5=n/10000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d,%d\n",n5,n4,n3,n2,n1);nn=n1*10000+n2*1000+n3*100+n4*10+n5;printf("n的逆序数为%d\n",nn);}if(n>=1000&&n<=9999){printf("n是4位数\n");n1=n%10;n2=(n/10)%10;n3=(n/100)%10;n4=n/1000;printf("n每一位上的数字是(从高到低)%d,%d,%d,%d\n",n4,n3,n2,n1);nn=n1*1000+n2*100+n3*10+n4;printf("n的逆序数为%d\n",nn);}if(n>=100&&n<=999){printf("n是3位数\n");n1=n%10;n2=(n/10)%10;n3=n/100;printf("n每一位上的数字是(从高到低)%d,%d,%d\n",n3,n2,n1);nn=n1*100+n2*10+n3;printf("n的逆序数为%d\n",nn);}if(n>=10&&n<=99){printf("n是2位数\n");n1=n%10;n2=n/10;printf("n每一位上的数字是(从高到低)%d,%d\n",n2,n1);nn=n1*10+n2;printf("n的逆序数为%d\n",nn);}if(n>=0&&n<=9){printf("n是1位数\n");printf("n每一位上的数字是(从高到低)%d\n",n);nn=n;printf("n的逆序数为%d\n",nn);}}6、#include <stdio.h>main(){float i,r;printf("Input i(万元):");scanf("%f",&i);if(i<=10)r=i*0.1;else if(i<=20)r=10*0.1+(i-10)*0.075;else if(i<=40)r=10*0.1+10*0.075+(i-20)*0.05;else if(i<=60)r=10*0.1+10*0.075+20*0.05+(i-40)*0.03;else if(i<=100)r=10*0.1+10*0.075+20*0.05+20*0.03+(i-60)*0.015;elser=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(i-100)*0.01;printf("i=%f,r=%f\n",i,r);}7、#include <stdio.h>#include <math.h>void main(){ double s=0.0;int i,n;scanf("%d",&n);for(i=0; i<n;i++)if(i%5==0 && i%11==0)s=s+i;s=sqrt(s);p rintf("s=%f\n",s); }8、#include <stdio.h>main(){ int n,g,sh;printf("Enter a two-digit number:");scanf("%d",&n);printf("You entered the number ");if(n>=10 && n<=19)switch(n){ case 10:printf("ten\n");break;case 11: printf(" eleven\n");break;case 12:printf("twelve\n");break;case 13:printf("thirteen\n");break; case 14:printf("fourteen\n");break; case 15:printf("fifteen\n");break; case 16:printf("sixteen\n");break; case 17:printf("seventeen\n");break; case 18:printf("eighteen\n");break;case 19:printf("nineteen\n");break;}else{g=n%10;sh=n/10;switch(sh){case 2: printf("twenty");break;case 3:printf("thirty");break;case 4:printf("fourty");break;case 5:printf("fifty");break;case 6:printf("sixty");break;case 7:printf("seventy");break;case 8:printf("eighty");break;case 9:printf("ninety");break;}switch(g){case 0:printf("\n");break;case 1:printf("-one\n");break;case 2:printf("-two\n");break;case 3:printf("-three\n");break;case 4:printf("-four\n");break;case 5:printf("-five\n");break;case 6:printf("-six\n");break;case 7:printf("-seven\n");break;case 8:printf("-eight\n");break;case 9:printf("-nine\n");break;}}}第3节循环结构程序设计一、选择题二、填空题1.[1] ____ x>=0_______ [2] ____ x<amin ___________ 2.[1] _____ c!=`\n`__ [2]c>=`0`&&c<=`9`__ 3.[1] ______ x1 ______ [2] ______ x1/2-2_______ 4.[1] __ r=m;m=n;n=r;[2] ____ m%n ________ _____ 5.[1] __ i%3==2&&i%5==3&&i%7==2 _[2] ____ j%5==0____ 6.[1] _____ n%10 ______ [2] _____ max=t ____ 7.[1] _______ i<x ______8.[1] ________2*x+y*4==90____9.[1] ___ t=t*i _________ [2] ______ t=-t/i _______ 10.[1] ____ m=n __ [2] _____ m ___ [3] ____ m=m/10______ 11.[1] ____ m=0,i=1_____ [2] ___ m=m+i _________ 12.[1] _____ k ____ [2] ___ k/10_____13.[1] _____ break ___ [2] ____ i= =11或i>=11__________ 14.[1] _____ i<=9 ____ [2] ______ j%3!=0____15、[1]b=i+1 16、[1]t>eps [2] 2.0*s17、[1] (ch=getchar()) [2] front!=' ' [3] ch三、程序分析题1、172、6689773、0111224、s=35、3,1,-1,3,1,-1,3,1,-1四、编程题1、#include “stdio.h”void main(){ int k,s=0;scanf("%d",&k);while(k>0){ if(k%3==0&&k%7!=0)s++ ;scanf("%d",&k);}printf("s=%d\n",s);}2、#include “stdio.h”void main( ){ int sum,n,i,s=0;for(n=200;n<=500;n++){ sum=0;for(i=1;i<=n/2;i++)if(n%i==0) sum+=i;if(sum= =n)s=s+n; }printf(“s=%d\n”,s); }3、#include "stdio.h"void main(){ int n,x=1;for(n=9;n>=1;n--)x=2*(x+1);printf("n=%d",x);}4、#include "stdio.h"void main(){ int x,y,z;for(x=1;x<=19;x++)for(y=1;y<=33;y++)for(z=1;z<=99;z++)if((x+y+z==100)&&(5*x+3*y+z/3==100))printf("X=%d,Y=%d,Z=%d\n",x,y,z);}5. main(){int i,n=0;for(i=100;i<=600;i++){a=i/100;b=i%100/10;c=i%10;if((b+c)%10==a)n++; }printf(“n=%d\n”,n);}6、#include <stdio.h>void main(){int i,sum=0,a,b,c;for(i=123;i<433;i++){a=i/100;b=i/10%10;c=i%10;if(a!=b&&a!=c&&b!=c&&(a>0)&&(a<5)&&b>0&&b<5&&c>0&&c<5) {sum++;printf("%d ",i);}}printf("\n%d\n",sum);}7、输出9*9口诀表。

C语言练习4(附参考答案)

C语言练习4(附参考答案)

实验4:运算符与表达式(3)实验目的:1、熟悉逗号运算符等的基本运用和规则。

2、学会使用C语言的关系运算符和逻辑运算符,以及包含这些运算符的表达式。

3、进一步熟悉C语言程序的编辑、编译、连接和运行的方法。

实验内容:一、选择题1、逻辑运算符两侧运算对象的数据类型(D)。

A)只能是0或1 B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据2、以下关于运算符优先顺序的描述中正确的是(C)。

A)关系运算符<算术运算符<赋值运算符<逻辑与运算符B)逻辑与运算符<关系运算符<算术运算符<赋值运算符C)赋值运算符<逻辑与运算符<关系运算符<算术运算符D)算术运算符<关系运算符<赋值运算符<逻辑与运算符3、能正确表示“当x的取值在[1,100]和[200,300]范围内为真,否则为假”的表达式是(C)。

A) (x>=1)&&(x<=100)&&(x>=200)&&(x<=300)B) (x>=1)||(x<=100)||(x>=200)||(x<=300)C) (x>=1)&&(x<=100)||(x>=200)&&(x<=300)D) (x>=1)||(x<=100)&&(x>=200)||(x<=300)4、为判断字符变量c 的值不是数字也不是字母时,应采用下述表达式( D )。

A )c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B )!(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C )c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D )!(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)5、设x 、y 和z 是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是( D )。

C语言第3章课后习题答案

C语言第3章课后习题答案

程序如下: 程序如下: 习题3-13】答案 【习题 】 #include <stdio.h> void main( ) { float money; int national, count; printf(" printf("Input national or external: "); scanf("%d" scanf("%d",&national); printf(" printf("Input count of product: "); scanf("%d" scanf("%d",&count); if(national) /* 国内销售 */ if(count<=80) money=count*350.0; else money=count*350.0-(countmoney=count*350.0-(count-80.0)*20.0; else /* 国外销售 */ if( count<=1000) money=count*900.0; else money=count*900.0-(countmoney=count*900.0-(count-1000.0)*15.0; printf("total=%f" printf("total=%f",money); }
【习题3-14】方法 习题 】方法2
#include<stdio.h> void main() { char chr; char password; chr=getchar(); if(chr>='U'&&chr<='Z'||chr>='u'&&chr<='z') { password=chr+6password=chr+6-26; } else { password=chr+6; } printf("The character's password is %c",password); }

C语言第四章习题带答案

C语言第四章习题带答案
-4-
A.A B.ABother C.Aother D.编译错误,无法运行 10.当 a=1, b=3, c=5, d=4 时,执行完成下面一段程序后 x 的值是( B )。 if (a<b) if (c<d) x=1; else if (a<c) if (b<d) x=2; else x=3; else x=6; else x=7; A.1 B.2 C.3 D.6 二、填空题 11.以下程序的输出结果是( -1 )。 main() { int a=100, x=10, y=20, ok1=5, ok2=0; if (x<y) if (y!=10) if (!ok1) a=1; else if (ok2) a=10; a=-1; printf("%d\n",a); } 12.阅读以下程序: main() { int t, h, m; scanf("%d", &t); h=(t/100)%12; if (h==0) h=12; printf("%d:", h); m=t%100; if (m<10) printf("0"); printf("%d",m); if (t<1200||t==2400) printf("AM"); else printf("PM"); } 若运行时输入:1605<CR>,程序的运行结果是( 4:05PM )。 13.若运行时输入:3 5/<CR>,则以下程序的运行结果是( 0.600000 )。 main() { float x, y; char o; double r; scanf("%f%f%c", &x, &y, &o); switch (o) { case '+': r=x+y; break;

C语言第4章习题参考答案

C语言第4章习题参考答案
if(disc>=0.0)
printf("Two roots:x1=%lf\tx2=%lf\n",re+im,re-im);
else
printf("Two comples roots:x1=%lf+i*%lf\tx2=%lf-i*%lf\n",re,im,re,im);
}
}
4-10
main( )
{ int num,indiv,ten,hundred,place;
break;
default:printf("Input error!");
}
}
4-8
#include "stdio.h"
main( )
{ char key;
printf(" L—装载文件\n");
printf(" S—保存文件\n");
printf(" E—编辑文件\n");
printf(" P—打印文件\n");
{ double a,b,c;
double disc;
double re,im;
printf("Enter a,b,c:");
scanf("%lf%lf%lf",&a,&b,&c);
if(a==0.0)
if(b==0.0)
printf("The equation has not soluble!\n");
break;
case 2: printf("%d,%d", ten,indiv);
printf("\n反序数字为:");

数据结构(c语言版)课后习题答案完整版

数据结构(c语言版)课后习题答案完整版

第1章 绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

.试分析下面各程序段的时间复杂度。

(1)O (1) (2)O (m*n ) (3)O (n 2) (4)O (log 3n )(5)因为x++共执行了n-1+n-2+……+1= n(n-1)/2,所以执行时间为O (n 2) (6)O(n )第2章 线性表1.选择题.选择题babadbcabdcddac 2.算法设计题.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L->next==NULL) return NULL; pmax=L->next; //假定第一个结点中数据具有最大值假定第一个结点中数据具有最大值 p=L->next->next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax->data) pmax=p; p=p->next; }return pmax->data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间。

的存储空间。

void inverse(LinkList &L) { // 逆置带头结点的单链表 Lp=L->next; L->next=NULL; while ( p) {q=p->next; // q 指向*p 的后继 p->next=L->next;L->next=p; // *p 插入在头结点之后 p = q; }}、空间(n)、空间(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)的数据元素。

复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素。

C语言第3章_分支结构

C语言第3章_分支结构

3.3练习与习题参考答案3.3.1练习参考答案3-1 例3-4中使用else-if 语句求解多分段函数,为了检查else-if 语句的三个分支是否正确,已经设计了三组测试用例,请问还需要增加测试用例吗?为什么?如果要增加,请给出具体的测试用例并运行程序。

解答:最好再增加两组测试用例,因为尚未对分段函数参数的边界值进行测试。

可再给出x=0和x=15时的两种情况。

3-2 计算符号函数的值:输入一个整数x ,计算并输出符号函数 sign(x) 的值。

试编写相应程序⎪ ⎩⎪ ⎨ ⎧ >=<−==010001)(x x x x sign y ,,,解答:#include<stdio.h>int main (void){int x, y;scanf ("%d", &x);if (x > 0) y = 1;else if (x == 0) y = 0;else y = -1;printf ("sign(%d) = %d\n", x, y);return 0;}3-3统计学生平均成绩与及格人数:输入一个正整数n,再输入n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。

试编写相应程序。

解答:#include <stdio.h>int main (void){int count, grade, i, n;double average, sum;scanf ("%d", &n);count = 0;sum = 0;for (i = 1; i <= n; i++){scanf ("%d", &grade);sum = sum + grade;if (grade >= 60) {count++;}}if (n > 0) {average = sum / n;}else{average = 0;}printf ("average = %.1f\n", average);printf ("count = %d\n", count);return 0;}3-4统计字符:输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。

C语言第四章习题及答案(课余练习,不用提交)

C语言第四章习题及答案(课余练习,不用提交)

第四章习题答案一、选择题1)以下是if语句的基本形式:if(表达式) 语句其中"表达式"A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式2)以下选项中,值为1的表达式是()。

A)1-'0' B)1-'\0' C)'1'-0 D)'\0'-'0'3)若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是:A)1 B)0 C)2 D)不知道a的值,不能确定4)若变量已正确定义,在if (W)printf(“%d\n”,k);中,以下不可替代W的是A)a<>b+c B)ch=getchar()C)a==b+c D)a++5)设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是A)if(x++); B)if(x>y&&y!=0);C)if(x>y) x- - D)if(y<0) {;}else y++; else x++;6) 以下选项中,当x为大于1的奇数时,值为0的表达式A)x%2==1 B)x%2 C)x%2!=0 D)x%2==07) 设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是A)(EXP= =0) B)(EXP!=0)C)(EXP= =1)D)(EXP!=1)8) 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A)(!E=0) B) (E>0||E<0) C) (E==0) D) (E!=0)9)若有定义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)10) 若有表达式(w)?(--x):(++y),则其中与w等价的表达式是 ( )A)w==1 B) w==0 C) w! =1 D) w! =011) 设有定义: int a=1,b=2,c=3;,以下语句中执行效果与其它三个不同的是A)if(a>b) c=a,a=b,b=c; B)if(a>b){c=a,a=b,b=c;}C)if(a>b) c=a;a=b;b=c; D)if(a>b){c=a;a=b;b=c;}12) 已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)isalpha(c) 判断参数c是否为英文字母头文件:ctype.hisupper(c) 判断参数c是否为大写英文字母是返回非零值,否则返回零islower(c ) 检查参数c是否为小写英文字母13)已有定义:char c; ,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是A)isupper(c) B)’A’<=c<=’Z’C)’A’<=c&&c<=’Z’D)c<=(‘z’-32)&&(‘a’-32)<=c14) 当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)15) 若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错 B)3,5,3 C)3,5,5 D)3,5,7 16)有以下程序#includemain(){int a=1,b=0;if(!a) b++;else if(a==0) if(a) b+=2;else b+=3;printf("%d\n",b); }程序运行后的输出结果是A)0 B)1 C)2 D)317)在嵌套使用if语句时,C语言规定else总是()。

C语言程序设计习题集第4章 循环结构(答案)

C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。

main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。

main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。

main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序main(){ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。

C语言三四章习题

C语言三四章习题

三四章1.选择题【例2.1】若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值为x=(i=4,j=16,k=32)A .4B .16C .32D .52【例2.2】若有代数式bc ae3,则不正确的C 语言表达式是A .a/b/c*e*3B .3*a*e/b/cC .3*a*e/b*cD .a*e/c/b*3【例2.3】已知各变量的类型说明如下:int k,a,b;unsigned long w=5;double x=1.42;则以下不符合C 语法的表达式是A .x%(-3)B .w+=-2C .k=(a=2,b=3,a+b)D .a+=a-=(b=4)*(a=3)【例2.4】以下选项中不属于C 语言的类型的是 。

A .signed short intB .unsigned long intC .unsigned intD .long short【例2.5】下列定义中合法的是 。

A .short _a=1-.1e-1;B .double b=1+5e2.5;C .long do=0xfdaL;D .float 2_end=1-e-3;【例2.6】-8在内存中的存储形式是 。

A .11111111 11111000B .10000000 00001000C .00000000 00001000D .11111111 11110111【例2.7】数值029是一个 。

A .八进制数B .十六进制数C .十进制数D .非法数【例2.8】在C 语言中,要求运算数必须是整型的运算符是A ./B .++C .!=D .%【例2.9】以下符合C 语言语法的赋值表达式是 。

A .d=9+e+f=d+9B .d=9+e, f=d+9C .d=9+e, e++, d+9D .d=9+e++=d+7【例2.10】C 语言中,关于自增自减运算符使用正确的是 。

A .10++B .(x+y)--C .d+++d+++d++D .++(a-b)【例2.11】设有int x=11; 则表达式(x++*1/3)的值是 。

3-4基础题

3-4基础题

3-4章基础题课后习题:除了3.1, 4.14.2; 4.3(思考)一、选择题1、一个C程序由若干个C函数组成,各个函数在文件中的位置为___________。

A、任意B、第一个函数必须是主函数,其他函数任意C、必须完全按照顺序排列D、其他函数必须在前,主函数必须在最后2、下列四个叙述中,正确的是_______________。

A、C程序中的所有字母都必须小写B、C程序中的关键字必须小写,其他标示符不区分大小写C、C程序中的所有字母都不区分大小写D、C语言中的所有关键字必须小写3、下列四个叙述中,错误的是_______________。

A、一个C源程序必须有且只能有一个主函数B、一个C源程序可以含零个或多个子函数C、在C源程序中注释说明必须位于语句之后D、C源程序的基本结构是函数4、下面属于C语言关键字的是_____________。

A、intB、typedefC、enumD、union5、以下叙述不正确的是____________。

A、分号是C语句的必要组成部分B、C程序的注释可以写在语句的后面C、函数是C程序的基本单位D、主函数的名字不一定用mian表示6、C语言中允许的基本数据类型包括_______。

A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型7、C语言中能用八进制表示的数据类型为________。

A、字符型、整型B、整形、实型C、字符型、实型、双精度型D、字符型、整型、实型、双精度型8、下列属于C语言合法的字符常数是___________。

A、‟\97‟B、”A”C、‟\t‟D、”\0”9、在C语言中,合法的长整型常数是____________。

A、0LB、4962710C、0412765D、0xa34b7fe10、若有以下定义语句char c1=‟b‟, c2=‟e‟; printf(“%d,%c\n”,c2-c1,c2-…a‟+‟A‟);则输出结果是__________。

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

第3-4章练习题
一、选择题
1. 以下错误的字符串赋值或赋初值方式是:
(A)char str1[]=”string”, str2[]=”12345678”;st r cpy(str2,str1);
(B)char str[7]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};
(C)char str[10] ;str =”string”;
(D)char *str; str=”string”;
2. 数组定义中不正确的是:
(A)int a[2][3]; (B)int b[][3]={0,1,2,3};
(C)int c[100][100]={0}; (D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
3. 以下对一维数组a正确初始化的是:
(A)int a[10]=(0,0,0,0,); (B)int a[10]={};
(C)int a[10]={0}; (D)int a[10]=(10*2);
4.以下选项中,不能正确赋值的是:
(A)char s1[10];s1="Ctest"; (B)char s2[]={'C', 't', 'e', 's', 't'};
(C)char s3[20]="Ctest"; (D)char *s4="Ctest\n"
5.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:
(A)i=*p; (B)*p=*&j; (C)i=&j; (D)i=**p;
6. 下面各语句行中,不能正确进行字符串操作的语句行是:
(A) char st[10]={"abcde"}; (B) char s[5]={'a','b','c','d','e'};
(C) char *s; s="abcde"; (D) char *s; scanf("%s",s);
7.设有如下的程序段,执行上面的程序段后,*(ptr+5)的值为:
char str[ ]="Hello"; char *ptr; ptr=str;
(A) 'o' (B) '\0' (C)不确定的值(D) 'o'的地址
8. 请选出以下语句的输出结果
printf("%d\n",strlen("\t\"\065\xff\n"));
(A)5 (B)14 (C)8 (D)输出项不合法,无正常输出
9.以下程序段给数组所有的元素输入数据,请选择正确答案填入。

main()
{ int a[10],i=0;
while(i<10) scanf("%d",________ );
┇}
(A)a+(i++) (B)&a[i+1] (C)a+i (D)&a[++i]
10.若有以下说明和语句,请选出哪个是对c数组元素的正确引用
int c[10], *cp; cp=c;
(A)cp+1 (B)*(cp+3) (C)**(cp+1)+3 (D)*(*cp+2)
11.设有如下一段程序, 执行下面的程序后, ab的值为:
int *var, ab; ab = 100; var = &ab; ab = *var + 10;
(A)120 (B)110 (C)100 (D)90
12.若有以下定义:int a[10], *p=a ;则p+4表示
A) 元素a[4]的地址B) 元素a[4]的值C) 元素a[5]的地址D) 元素a[5]的值
13. 判断字符串s1是否小于字符串s2,应当使用
A) if(s1 < s2) B) if(strcmp(s1,s2)) C) if (strcpy(s1,s2)<0 ) D) if(strcmp(s1,s2)<0)
14. 以下数组定义中不正确的是
A) int a[3][4]; B) int b[][3]={{1,2,3},{4,5,6}};
C) int c[3][4]={0}; D) int d[2][ ]={{1,0,0},{0,1,0}};
15.在下面的定义语句中,错误的是
A)int n=20, a[n]; B) char *a[3]; C) char s[20]="test"; D) int a[]={1,2};
16.对C语言字符数组的描述中错误的是:
A) 字符数组可以存放字符串。

B) 字符数组的字符串可以整体输入输出。

C)可以在赋值语句中通过赋值运算符对字符数组整体赋值。

D) 不可以用关系运算符对字符数组中的字符串进行比较。

17.设有以下说明语句:
struct stu
{ int a; float b; } stutype;
则下面的叙述不正确的是:
A) struct 是定义结构体类型的关键字。

B) struct stu是用户定义的结构体类型。

C)stutype是用户定义的结构体类型名。

D) a 和b都是结构体成员名。

二、写出程序运行结果。

三、填空题
1.已知字符’A’的ACSII码值为65,以下语句的输出结果是:B_
char ch=’B’;
printf("%c\n",ch++);
2.指针变量的类型用来指定_该指针变量可以指向的变量___的类型;
3.有如下程序段
int *p,a=10,b=1;
p=&a; a=*p+b;
执行该程序段后,a的值为:_11___;
4. 下面程序输出结构体变量sz所占存储单元的字节数。

struct st {char name[20]; float score; } ;
main()
{ struct st sz;
printf("sz size: %d\n", sizeof(struct st/ sz ));
}
四、编程题目。

相关文档
最新文档