C语言第十章复习题(不含答案)
计算机二级C语言辅导 10章 字符串
例2. 删除一个字符串中的一个字符。 字符串由标准输入得到,欲删除的字符也由标准输入得到
main ( ) { char s[20],c; int i,j; gets(s); c=getchar( ); for (i=j=0;s[i]!=„\0‟;i++) if (s[i]!=c) s s[j++]=s[i]; s[j]=„\0‟; c=l }
p
i j
i j
i j
i
j
i
W
0
o
1
r
2
l
3
d
4
\0
5
例2. 删除一个字符串中的一个字符。 字符串由标准输入得到,欲删除的字符也由标准输入得到
main ( ) { char s[20],c; int i,j; gets(s); c=getchar( ); for (i=j=0;s[i]!=„\0‟;i++) if (s[i]!=c) s s[j++]=s[i]; s[j]=„\0‟; c=l }
H o w \0
0 1 2 3 4 5 6 7 8 9 10 11 12
字符数组
五、字符串处理函数: 1.puts(字符数组); 将字符串输出到终端,在输出时将字符串结束标记‘\0‟转换成‘\ char str[ ]={“China\nBeijing”}; puts(str); 输出:China Beijing 2.gets(字符数组)--读入全部字符(包括空格),直到遇到回车符为止 从终端输入一个字符串到字符数 如果输入以下12个字符: 组,并且得到一个函数值,该函 数值是字符数组的起始地址。
第十章 字符串
在C语言中,没有字符串这种数据类型, 因此可以将字符串存放在字符数组中。 这是处理字符串的方法之一。
C语言习题结构体和杂类(答案)
C语言习题结构体和杂类(答案)第十章结构体和杂类一.选择题1.如下说明语句,则下面叙述不正确的是(C)。
tructtu{inta;floatb;}tutype;A.truct是结构体类型的关键字B.tructtu是用户定义结构体类型C.tutype是用户定义的结构体类型名(变量名)D.a和b都是结构体成员名2.在16位PC机中,若有定义:tructdata{inti;charch;doublef;}b;则结构变量b占用内存的字节数是(D)。
A.1B.2C.8D.11A.1和2B.2和3C.7和2D.7和84.以下程序的输出结果是(D)。
unionmyun{truct{int某,y,z;}u;intk;}a;main(){a.u.某=4;a.u.y=5;a.u.z=6;a.k=0;printf(\A.4B.5C.6D.05.当定义一个共用体变量时,系统分配给它的内存是(C)。
A.各成员所需内存量的总和B.结构中第一个成员所需内存量C.成员中占内存量最大的容量D.结构中最后一个成员所需内存量6.若有以下程序段:uniondata{inti;charc;floatf;}a;intn;则以下语句正确的是(C)。
A.a=5;B.a={2,’a’,1.2}C.printf(“%d”,a);D.n=a;7.设truct{inta;charb;}Q,某p=&Q;错误的表达式是(d)。
A.Q.aB.(某p).bC.p->aD.某p.b9.以下对C语言中共用体类型数据的叙述正确的是(c)。
A.可以对共用体变量直接赋值B.一个共用体变量中可以同时存放其所有成员C.一个共用体变量中不能同时存放其所有成员D.共用体类型定义中不能出现结构体类型的成员10.下面对typedef的叙述中不正确的是(b)。
A.用typedef可以定义多种类型名,但不能用来定义变量B.用typedef可以增加新类型C.用typedef只是将已存在的类型用一个新的标识符来代表D.使用typedef有利于程序的通用和移植二.判断题1.共用体类型的变量的字节数等于各成员字节数之和。
明解C语言入门篇第十章答案
明解C语⾔⼊门篇第⼗章答案练习10-1#include <stdio.h>void adjust_point(int*n) {if (*n > 100)*n = 100;if (*n < 0)*n = 0;}int main() {int x;printf("请输⼊⼀个数:");scanf("%d", &x);adjust_point(&x);printf("修改后的值是%d",x);}练习10-2void decrement_date(int* y, int* m, int* d) {*d -= 1;if (*d == 0) {*m -= 1;if (*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 ||* m == 0) {*d = 31;}if (*m == 2) {*d = 28;if (*y % 4 == 0) {*d = 29;}}else*d = 30;if (*m == 0) {*m = 12;*y -= 1;}}}void increment_date(int* y, int* m, int* d) {*d += 1;if ((*m == 1 || *m == 3 || *m == 5 || *m == 7 || *m == 10 || *m == 8 || *m == 12) && (*d == 32)) {*d = 1;*m += 1;}if ((*m == 4 || *m == 6 || *m == 9 || *m == 11 ) && (*d == 31)) {*d = 1;*m += 1;}if (*m == 2) {if (*d == 29&& ((*y & 4) != 0)) {*d = 1;}if (*d == 30 && ((*y & 4) == 0)) {*d = 1;*m += 1;}}if (*m == 13) {*y += 1;*m = 1;}}练习10-3#include<stdio.h>void swap(int* px, int*py) {int temp = *px;*px = *py;*py = temp;}void sort3(int*n1, int*n2, int*n3) {if (*n1 > *n2) {swap(n1, n2);}if (*n1 > * n3) {swap(n1, n3);}if (*n2 > * n3) {swap(n2, n3);}}int main(void) {int n1, n2, n3;printf("n1=");scanf("%d", &n1);printf("n2=");scanf("%d", &n2);printf("n3=");scanf("%d", &n3);putchar('\n');sort3(&n1, &n2, &n3);printf("%d,%d,%d", n1, n2, n3); }练习10-4#include <stdio.h>#define number 5void set_idx(int*v, int n) {int i = 0;for (i = 0; i < n; i++) {*(v + i) = i;}}int main() {int i;set_idx(x, number);for (i = 0; i < number; i++) {printf("x[%d]=%d", i,x[i] );putchar('\n');}}练习10-5会报错数组中元素会溢出,因为直接从v【2】开始赋值。
c语言程序设计基础教程课后答案
c语言程序设计基础教程课后答案C语言程序设计基础教程课后答案第一章:C语言概述1. 简述C语言的特点。
- C语言是一种结构化编程语言,具有高效、灵活、功能强大等特点。
- 它支持多种编程范式,如过程式编程、结构化编程、面向对象编程等。
- C语言具有较低的抽象级别,接近硬件,因此执行效率较高。
2. C语言的发展历史。
- C语言在1972年由丹尼斯·里奇(Dennis Ritchie)在贝尔实验室开发。
- 它最初是作为UNIX操作系统的系统编程语言而设计的。
第二章:C语言环境和基本语法1. 如何设置C语言的开发环境?- 选择一个C语言编译器,如GCC、MSVC等。
- 安装编译器并配置环境变量,以便在命令行中直接调用编译器。
2. C语言的基本语法结构是什么?- C语言的基本结构包括预处理指令、函数定义、变量声明和语句。
第三章:数据类型、运算符和表达式1. C语言中的基本数据类型有哪些?- 整型(int)、字符型(char)、浮点型(float和double)等。
2. 运算符的分类及其用法。
- 算术运算符:+、-、*、/、%等。
- 赋值运算符:=、+=、-=等。
- 比较运算符:==、!=、>、<等。
- 逻辑运算符:&&、||、!等。
第四章:控制语句1. 条件语句的用法。
- if语句用于基于条件执行代码块。
- switch语句用于多条件选择。
2. 循环语句的用法。
- while循环用于在满足条件时重复执行代码块。
- for循环用于已知迭代次数的循环。
- do-while循环先执行代码块再判断条件。
第五章:数组和字符串1. 数组的基本概念和使用。
- 数组是相同数据类型的元素集合,存储在连续的内存位置。
- 声明数组:int arr[10]; 表示一个包含10个整数的数组。
2. 字符串的表示和操作。
- 在C语言中,字符串是以空字符('\0')结尾的字符数组。
- 使用标准库函数如strcpy、strlen等操作字符串。
C语言第十章复习题(含答案)
1.若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是(B )。
(A)i= *p; (B)*p=*&j; (C)i=&j; (D)i=* *p;2.若有以下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是( C)。
(A)*p+6 (B)*(p+6) (C)*p+=5 (D)p+53.若有以下定义和语句:char *s1="12345",*s2="1234";printf("%d\n",strlen(strcpy(s1,s2)));则输出结果是( A)。
(A)4 (B)5 (C)9 (D)104.以下不能正确进行字符串赋初值的语句是(A )。
(A) char str[5]="good!"; (B) char str[]="good!";(C) char *str="good!"; (D) char str[5]={‘g',‘o',‘o',‘d'};5.若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为( D )。
(A) 无确定值 (B) a的地址 (C) 512 (D) 5116.下面程序的输出是( A )。
(A) 3 (B) 4 (C) 1 (D) 2main(){ int a[10]={ 1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}7.若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(D )。
(A) p=q; (B) *p=*q; (C) n=*q; (D) p=n;8.有如下说明int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是( B )。
C语言程序设计智慧树知到答案章节测试2023年安徽水利水电职业技术学院
第一章测试1.以下选项中不合法的标识符是()。
A:&aB:_00C:FORD:print答案:A2.按照C语言规定的用户标识符命名规则,不能出现在用户标识符中的是()。
A:大写字母B:数字C:连接符D:下划线答案:C3.以下正确的字符串常量是()。
A:‘abc’B:HelloC:“”D:“”答案:D4.以下关于注释的叙述中错误的是()。
A:注释的边界符号“ /”和“/”必须成对出现且可以嵌套B:注释的边界符号“ /”和“*”之间不允许加入空格C:注释的内容仅用于阅读,对程序的运行不起作用D:C语言允许注释出现在程序中任意合适的地方答案:A5.以下可以正确且安全地用作用户标识符的一组选项是()。
A:Switch,unsignedB:_32int,long64C:Abc,getchD:3break,enter答案:B第二章测试1.以下选项中非转义字符的是()。
A:‘’B:’’C:‘ ’D:‘d’答案:D2.C语言常量的类型从字面形式上可区分,以下判断中正确的是()。
A:“a”——字符型B:2.0E3——实型C:‘25’——字符串D:2E3——整型答案:B3.表达式“(int)((double)9/2-9%2”的值是()。
A:3B:4C:5D:0答案:A4.若有定义“int x,y;”,并已正确给变量赋值,则以下选项中与表达式“(x-y)?(x++):(y++)”中的条件表达式“(x-y)”等价的是()。
A:(x-y<0)B:(x-y>0)C:(x-y==0)D:(x-y<0||x-y>0)答案:D5.若变量已正确定义并赋值,以下符合C语言语法的表达式是()。
A:++x,y=x–B:double(x)/10C:x+1=yD:x=x+10=x+y答案:A第三章测试1.若变量已正确定义,在“if(W)printf(“%d”,k);”中,以下不可替代W的是()。
A:-10B:a<>b+cC:-20D:10答案:B2.对于“if(表达式)语句”,以下叙述正确的是()。
《C语言程序设计》第十章位运算(完)
运行结果: a and b:0x81 a and b:0xbb a and b:0x3a
1 0 1 1 1 0 0 1 a:0xb9 a&b 1 0 0 0 0 0 1 1 b:0x83
1 0 0 0 0 0 0 1 结果:0x81
1 0 1 1 1 0 0 1 a:0xb9 a|b 1 0 0 0 0 0 1 1 b:0x83
unsigned char b=248 b>>2 1 1 1 1 1 0 0 0
补零
00111110
舍弃
不带符号的操作数右移位时,左端出现的空 位补零。
unsigned char b=248 b>>2 1 1 1 1 1 0 0 0
补零
00111110
舍弃
说明:
4) 每右移一位相当于操作数除2。 5) a>>2,b>>2形式的操作并不改变操作数a,b
b=a<<2 舍弃
0 0 0 1 1 0 1 1 a:0x1b
0 1 1 0 1 1 0 0 b:0x6c 补零
不带符号的操作数右移位时,左端出现的空 位补零。
带符号的操作数右移位时,左端出现的空位 按原最左端的位复制,无论什么操作数,移 出右端的位被舍弃。
例[10-4]:右移位操作。
void main(){ char a=-8; unsigned char b=248; printf("signed a right_shift 2 bit:%d\n", a>>2 ); printf("unsigned b right_shift 2 bit:%d\n", b>>2 ); }
(完整版)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语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。
A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。
A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。
(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。
(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。
A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。
《C语言程序设计教程》(第三版)李凤霞 主编——第十章习题答案
习题十一、单选题1~5 DDDCC6~10 AABDB11~14 CADC二、填空题1、34 122、ARRAY a,b,c;3、1 34、a c5、(*b).day=? b->day=?5、分析下列程序执行结果。
#include “stdio.h”main(){static struct s1{char c[4],*s;s1={“abc”,”def”};static struct s2{char *cp;struct s1 ss1;}s2={“ghi”,{“jkl”,”mno”}};printf(“%c%c\n”,s1.c[0],*s1.s); /*output ab */printf(“%s%s\n”,s1.c,s1.s); /*output abcdef */printf(“%s%s\n”,s2.cp,s2.ss1.s); /*output ghimno */printf(“%s%s\n”,++s2.cp,++s2.ss1.s); /* output hino */}6、以下程序的功能是:读入一行字符(如:a,...,y,z),按输入时的逆序建立一个链式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。
#define getnode(type)_________malloc(sizeof(type)) ( (struct node *))main(){struct node{char info;struct node *link;}*top,*p;char c;top=NULL;while((c=getchar())______________) (!='\n'){p=getnode(struct node);p->info=c;p->link=top;top=p;}while(top){_________________; (p=top)top=top->link;putchar(p->info);free(p);}}7、下面的函数将指针p2所指向的线性链表链接到p1所指向的的链表的末端。
第十章复习题
37.1993年11月召开的中共十四届三中全会, 通过了( ) D A.《关于经济体制改革的决定》 B.《关于教育体制改革的决定》 C.《关于社会主义精神文明建设指导方针 的决议》 D.《关于建立社会主义市场经济体制若干 问题的决定》
38.1995年,江泽民关于发展海峡两岸关 系的重要讲话是( B ) A.《告台湾同胞书》 B.《为促进祖国统一大业的完成而继续奋 斗》 C.《一个国家,两种制度》 D.《实现两岸和平统一的九项方针》
33、 1978年中共十一届三中全会以来改革开 放时期的最突出的标志是( D ) A、改革开放 B、快速发展 C、以人为本 D、与时俱进 34、建设中国特色社会主义“四位一体”总体 布局除了经济、政治和文化建设外,还包括 B ( ) A、生态建设 B、社会建设 C、党的建设 D、精神文明建设
35、正式提出以人为本、全面协调可持续的科 学发展观的会议是( C ) A.中共十五届五中全会 B.中共十五届六中全会 C.中共十六届三中全会 D.中共十六届四中全会 36.中国的社会生产力在改革开放后迅速发展, 到2006年经济总量已居世界( C ) A.第二位 B.第三位 C.第四位 D.第五位
第十章 改革开放与现代化 建设新时期
一、单项选择题
1.被称为开创我国社会主义建设事业发展新时 期的宣言书,并为十一届三中全会召开作了思 想准备的重要文献是( A ) A、《解放思想,实事求是,团结一致向前看》 B、《在全国科学大会开幕式上的讲话》 C、《中国共产党第十二次代表大会开幕词》 D、《南方谈话》
16、完整概括中国共产党在社会主义初级阶段 “一个中心、两个基本点”的基本路线是( ) B A、中共十二大 B、中共十三大 C、中共十四大 D、中共十五大 17、2005年3月14日,十届全国人大三次会议 高票通过的法律是( B ) A、《对外贸易法》 B、《反分裂国家法》 C、《行政许可法》 D、《国民经济和社会发展第十一个五年规划 纲要》
《C语言程序设计》 课后习题答案 高等教育出版社
《C语言程序设计》课后习题答案高等教育出版社《C语言程序设计》课后习题答案高等教育出版社第一章:C语言概述1. C语言的特点C语言是一种以处理底层任务和系统编程为目标的高级编程语言。
其特点包括语法简洁、执行效率高、可移植性强等。
第二章:C语言基本数据类型1. C语言中的基本数据类型C语言中的基本数据类型包括整型、字符型、浮点型等。
整型可以进一步细分为有符号整型和无符号整型。
第三章:C语言运算符1. C语言中的运算符C语言中常见的运算符包括算术运算符、赋值运算符、关系运算符、逻辑运算符等。
这些运算符用于执行各种数学和逻辑操作。
第四章:C语言控制语句1. C语言中的条件语句C语言提供了if语句和switch语句来实现条件判断。
if语句用于执行基于布尔表达式的条件分支,而switch语句用于根据不同的值执行不同的代码块。
第五章:C语言函数1. C语言中的函数定义和调用函数是C语言中的基本模块,用于封装可重用的代码。
函数定义包括函数返回类型、函数名、参数列表和函数体等部分。
第六章:C语言数组1. C语言中的数组定义和使用数组是一组相同类型的数据元素的集合。
C语言中可以使用数组来存储和操作大量数据。
第七章:C语言指针1. C语言中的指针概念指针是一种变量,它存储了内存地址。
通过指针,可以直接访问和修改对应内存地址中的数据。
第八章:C语言字符串1. C语言中的字符串操作字符串是由一系列字符组成的数据类型。
C语言通过字符数组来表示和操作字符串。
第九章:C语言结构体1. C语言中的结构体定义和使用结构体是一种自定义的复合数据类型,它可以包含多个不同类型的成员变量。
第十章:C语言文件操作1. C语言中的文件读写操作文件操作是一种重要的数据输入和输出方式。
C语言提供了一系列函数来实现文件的读写操作。
总结:通过解答以上习题,我们可以更好地掌握C语言的各个方面,提升我们的编程能力和解决问题的能力。
希望本文对读者有所帮助。
数据结构(C语言版)考研复习题
数据结构(C语言版)考研复习题第1 页共19 页第一章绪论1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。
1.2 常用的存储表示方法有哪几种?1.3 算法的时间复杂度仅与问题的规模相关吗?1.4 有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大"O"记号表示。
例如,设T1(n)=1.39nlgn+100n+256=1.39nlgn+O(n), T2(n)=2.0nlgn-2n=2.0lgn+O(n), 这两个式子表示,当n足够大时T1(n)优于T2(n),因为前者的常数因子小于后者。
请用此方法表示下列函数,并指出当n足够大时,哪一个较优,哪一个较劣?函数大"O"表示优劣(1) T1(n)=5n22-3n+60lgn 5n22+O(n)(2) T2(n)=3n22+1000n+3lgn 3n22+O(n)(3) T3(n)=8n22+3lgn 8n22+O(lgn)(4) T4(n)=1.5n2+6000nlgn 1.5n2+O(nlgn)第二章线性表2.1 试描述头指针、头结点、开始结点的区别、并说明头指针和头结点的作用。
2.2 何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2.3 为什么在单循环链表中设置尾指针比设置头指针更好?2.4 下述算法的功能是什么?LinkList Demo(LinkList L){ // L 是无头结点单链表ListNode *Q,*P;if(L&&L->next){Q=L;L=L->next;P=L;while (P->next) P=P->next;P->next=Q; Q->next=NULL;}return L;}// Demo2.5设线性表的n个结点定义为(a0,a1,...a n-1),重写顺序表上实现的插入和删除算法:InsertList 和DeleteList.2.6 设顺序表L是一个递减有序表,试写一算法,将x插入其后仍保持L的有序性。
C语言试题库[完整版]
WORD 格式整理C 语言试题库一、单项选择第一章 C 语言概述( 1)一个 C 程序的执行是从A 、本程序的MAIN函数开始,到MAIN函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D 、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
( 2)以下叙述正确的是A 、在 C 程序中, MAIN函数必须位于程序的最前面。
B 、C 程序的每行中只能写一条语句。
C、 C 语言本身没有输入输出语句。
D 、在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误。
( 3)C 语言规定,在一个源程序中,MAIN主函数的位置是在:A 、必须在最前面。
B 、必须在系统调用的库函数的后面C、可以在任意位置。
D 、必须在最后面( 4)一个 C 程序是由:A 、一个主程序和若干子程序组成B 、函数组成C、若干过程组成D 、若干子程序组成( 5)以下叙述不正确的是:A 、一个 C 源程序可由一个或多个函数组成B 、一个C 源程序必须包含一个MAIN 函数C、 C 程序的基本组成单位是函数D 、在 C 程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k 都是 int 型变量,则计算下面表达式后,x 的值为x=(i=4 , j=16 , k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、 define , IF, typeB 、getc, char, printfC、include, scanf, caseE、 if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P _0, doB、 float,1a0, _AC、 b-a, goto, intD 、_123, temp, INT(4)若有代数式3 ae/bc,则正确的C语言表达式是A、 a/b/c*e*3B、 3*a*e/bcC、 3*a*e/b*cD、 a*e/c/b*3( 5)已知各变量的类型说明如下:int k, a, b;unsinged long w=5;double x=1.42;则以下不符合C语言语法的表达式是A、 x%(-3)B、 w+=-2;C、 k=(a=2,b=3,a+b)D、 a+=a-=(b=4)*(a=3)第三章简单C程序设计(1) putchar 函数可以向终端输出一个A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2)若x,y 均定义为int 型, z 定义为 double 型,以下合法的scanf 函数调用语句是A、 scanf( “%d%lx,%le”,&x,&y,&z);B、 scanf( “%2d*%d%lf”,&x,&y,&z);C、 scanf( “%x%*d%o”,&x,&y,&z);D、 scanf( “%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车 >时,以下程序的输出结果为main(){int x,y,z;scanf(“ %d%d%d” ,&x,&y,&z);printf(“ x+y+z=%dn” ,x+y+z);}A、 x+y+z=48B、 x+y+z=35C、 x+z=35D、不确定值(4)以下能正确的定义整型变量a,b 和c,并对它们赋初值为5的语句是A、int a=b=c=5;B、 int a, b, c=5;C、 a=5, b=5, c=5;D、 a=b=c=5;(5)若有以下定义,则正确的赋值语句是int a,b;float x;A、 a=1, b=2;B、 b++;C、 a=b=5;D、 b=int(x);第四章选择结构程序设计( 1)能正确表示“当 x 的值在 [1, 10] 和 [200, 210] 的范围为真,否则为假”的表达式是A 、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B 、(x>=1) ││ (x<=10)││ (x.>=200)││ (x<=210)C、(x>=1) &&(x<=10)││ (x.>=200) &&(x<=210)D 、(x>=1) ││ (x<=10)&& (x.>=200)││ (x<=210)( 2)以下程序的运行结果是#incl ude “ stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“ %d,%d” ,a,b);}A、6, 1B、2, 1C、6, 0D、2, 0( 3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(n“”* );* *else printf(“ $n$”$ );}以上程序。
c语言 大学 第10章习题答案
}
A.读文件中的字符B.统计文件中的字符数并输出C.打开文件D.关闭文件
B.用“R”方式也可以打开文件
C.用“w”方式打开的文件只能用于向文件写数据,且该文件可以不存在
D.用“a”方式可以打开不存在的文件
4.fscanf函数的正确调用形式是____D_____
A. fscanf(fp,格式字符串,输出表列)
B. fscanf(格式字符串,输出表列,fp);
C. fscanf(格式字符串,文件指针,输出表列);
D. fscanf(文件指针,格式字符串,输入表列);
5.函数调用语句:fseek(fp,-20L,2);的含义是____C____
A.将文件位置指针移到距离文件头20个字节处
B.将文件位置指针从当前位置向后移动20个字节
C.将文件位置指针从文件末尾处后退20个字节
D.将文件位置指针移到离当前位置20个字节处
第10章习题答案
1.系统的标准输入文件是指____A____
A.键盘B.显示器C.软盘D.硬盘
2.若执行fopen函数时发生错误,则函C. 1 D. EOF
3、在C中,下面对文件的叙述正确的是___C_____
A.用“r”方式打开的文件只能向文件写数据
fp1指向的文件中,正确的语句是____C____
A. for(i=0;i<80;i++) fputc(a[i],fp1);
B. for(i=0;i<10;i++) fputc(&a[i],fp1);
C.for(i=0;i<10;i++) fwrite(&a[i],8,1,fp1);
C语言程序设计(兰州石化职业技术大学)智慧树知到答案章节测试2023年
第一章测试1.标识符的长度建议在()个字符以内。
A:7B:6C:8D:5答案:C2.下列哪个是不合法的标识符()。
A:a_bB:A123C:a_34D:5abc答案:D3.以下哪项不是C语言的关键字()。
A:deB:charC:intD:for答案:A4.C语言中分隔符不包括()。
A:普通分隔符B:注释符C:不普通分隔符D:空白符答案:C5.下列描述不正确的是()。
A:用户定义的函数名由用户命名。
B:程序段通常由多条语句组成。
C:用户自定义的函数只能在主函数之前。
D:花括号之内的内容统称为函数体。
答案:C第二章测试1.C语言对不同的数据分配不同长度的存储空间。
A:对B:错答案:A2.C语言中的整型常量有三种表现形式。
A:错B:对答案:B3.C语言中的简单数据类型包括整型、实型、逻辑型、字符型。
A:错B:对答案:A4.字符型常量是用双引号引起来的一个字符。
A:对B:错答案:B5.字符型数据和整型数据是可以互相通用,并可进行算术运算的。
A:错B:对答案:B第三章测试1.在C语言程序中,表达式5%(-2)的结果是()。
A:1B:2.5C:2D:3答案:A2.在C语言程序中,表达式5/2的结果是()。
A:2B:1C:2.5D:2.0答案:A3.如果int a=3,b=4;则条件表达式”a<b? a:b”的值是()。
A:0B:4C:1D:3答案:D4.若int x=2,y=3,z=4; 则表达式x<z?y:z的结果是()。
A:3B:4C:2D:0答案:A5.C语言中,关系表达式和逻辑表达式的值是()。
A:0B:‘T’或’F’C:0或1D:1答案:C第四章测试1.以下哪项不是算法的特征()。
A:可行性B:无穷性C:确切性D:有输入答案:B2.程序设计不包括以下哪项()。
A:设计B:测试C:分析D:编写代码答案:D3.接收由键盘输入数据对应函数是()。
A:getchar()B:put()C:get()D:putchar()答案:A4.scanf()函数的语法格式为()。
C语言程序设计智慧树知到答案章节测试2023年甘肃财贸职业学院
第一章测试1.构成C语言程序的基本单位是()。
A:框架B:语句C:预处理D:函数答案:D2.在程序开发过程中,把文本文件格式源程序转化为二进制格式的目标程序的过程称之为()。
A:编辑B:连接C:编译D:运行答案:C3.关于主函数,下列说法不正确的是()。
A:C语言程序的运行从主函数开始,以主函数为核心展开B:主函数可以被其他自定义函数调用C:主函数的名称只能是mainD:一个完整的C语言应用程序有唯一的主函数答案:B4.关于标识符,下列说法不正确的是()。
A:用户自定义标识符中不区分大小写字母B:关键字不能作为用户自定义标识符C:标识符中可以出现下划线,且可以出现在标识符的任意位置D:库函数名称为预定义标识符,不建议用作用户自定义标识符答案:A5.以下可用作用户自定义标识符的一组是()。
A:printf、include、fabsB:2abc、pay$、sum-10C:Max、_abc、MainD:void、return、if答案:C第二章测试1.在C语言中,int、short、char三种类型数据所占用的存储空间是()。
A:int和short占2个字节,char占1个字节B:由用户自己定义C:与编译环境有关D:均为2个字节答案:C2.下面定义字符型变量ch的语句不正确的是()。
A:char ch=“c”;B:char ch=65;C:char ch=NULL;D:char ch=‘X2A’;答案:A3.已知大写字母A的ASCII是65,小写字母a的ASCII是97,以下不能将字符型变量c中的大写字母转换成对应的小写字母的语句是()。
答案:B4.设有定义:double d,h;,其中d为三角形的底边长,h为三角形的高,则以下C语言表达式与其面积公式1/2dh计算结果不相符的是()。
A:d h/2B:d/2hC:d h1/2D:1/2d h答案:D5.以下选项中,与k=n++;完全等价的语句是()。
C语言-习题集参考答案全部
目录- 1 -目录第一章C语言基础知识参考答案 ................................................................................ - 2 - 第二章顺序结构参考答案.......................................................................................... - 5 - 第三章选择结构参考答案.............................................................................................. - 7 - 第四章循环结构参考答案............................................................................................ - 11 - 第五章函数参考答案................................................................................................ - 15 - 第六章指针参考答案.................................................................................................... - 18 - 第七章一维数组参考答案............................................................................................ - 21 - 第八章二维数组参考答案.......................................................................................... - 28 - 第九章字符串参考答案.......................................................................................... - 31 - 第十章对C语言的深入讨论参考答案 ....................................................................... - 33 - 第十一章结构体与共用体参考答案............................................................................ - 34 - 第十二章文件参考答案........................................................................................ - 35 -全国计算机等级考试二级教程C 语言习题集参考答案- 2 - 第一章C语言基础知识参考答案一,选择题1 C2 D3 A4 C5 A6 D7 C 分析:C答案以数字开头了8 D 分析:int 是关键字9 C 10 D 11 B12 D 分析:Visual C++6.0中int类型的变量占的字节数为4。
c语言基础教程-第十章------文件和读写函数
C语言基础教程文件和文件指针1.文件一般说来,文件是有序数据的集合。
程序文件是程序代码的有序集合,数据文件是一组数据的有序集合。
文件是被存放在外部存储设备中的信息。
对文件的处理过程就是面向文件的输入和输出过程。
文件的输入过程是从文件中读出信息,文件的输出过程是往文件中写入信息,文件的输入的过程使用读函数,实现文件输出的过程使用写函数。
文件的读写函数是实现文件操作的主要函数,本章将用大量篇幅来讲述文件的读写函数。
C语言文件被称为流式文件,其特点是不分记录或块,将文件看成是信息"流"或看成是一个字符流(文本文件),或看成是一个二进制流(二进制文件).文件的存取是以字符(字节)为单位的,读写数据流的开始和结束受程序控制。
任何一个文件都是以EOF结束,最简单的文件是只有结束符的空文件。
C语言文件包含有设备文件和磁盘文件,例如,键盘是一种输入信息的文件,显示器屏幕和打印机是输出信息的文件它们都属于设备文件。
将内存的信息放到磁盘上保存,需要时再从磁盘上装入内存,这就要使用磁盘文件,磁盘文件是计算机中常用的文件nC语言文件按存放设备分设备文件和磁盘文件;按数据的组织形式分为文本文件(ASCII码文件)和二进制文件。
文本文件是按一个字节存放一个字符的ASCII码来存放的;二进制文件是按数据在内存中的存储形式放到磁盘上的。
例如,有一个整数10000,在内存中按二进制形式存放,占2个字节,将它放在磁盘上如按文本文件形式存放,占5个字节,每个数位占一个字节。
两种存放方式各有利弊。
以文本文件形式输出便于对字符进行处理,也便于输出字符,但是占用存储空间较多,并且要花费转换时间。
以二进制文件形式输出可节省存储空间和转换时间,但是不能直接输出字符形式。
2.文件指针文件指针是一种用来指向某个文件的指针。
如果说某个文件指针指向某个文件,则是该文件指针指向某个文件存放在内存中的缓冲区的首地址。
每一个被使用的文件都要在内存中开辟一个区域,用来存放的有关信息,包括文件名字、文件状态和文件当前位置等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
23. 下面程序把数组元素中的最大值放入a[0]中,则在if 语句中 的条件表达式应该是( )。 (A) p>a (B) *p>a[0] (C) *p>*a[0] (D) *p[0]> *a[0] main( ) { int a[10]={6,7,2,9,1,10,5,8,4,3},*p=a, i; for(i=0;i<10;i++,p++) if(________) *a=*p; printf("%d",*a); } 24. 以下程序的输出结果是( )。 (A) 123456780 (B) 123 456 780 (C) 12345678 (D) 147 main( ) { char ch[3][4]={"123","456","78"}, *p[3]; int i; for(i=0;i<3;i++) p[i]=ch[i]; for(i=0;i<3;i++) printf("%s",p[i]); } 25. 以下程序的输出结果是( )。 (A) AfghdEFG (B) Abfhd (C) Afghd (D) Afgd #include <string.h> main( ) { char *p1,*p2,str[50]="ABCDEFG"; p1="abcd"; p2="efgh"; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s",str); } 26. 若有以下定义和语句: double r=99, *p=&r; *p=r; 则以下正确的叙述是( )。 (A) 以下两处的*p含义相同,都说明给指针变量p赋值 (B) 在"double r=99, *p=&r;"中,把r的地址赋值给了p 所指的存储单元
(D)6,10 15. 执行以下程序段后,m的值为( )。 int a[2][3]={ {1,2,3},{4,5,6} }; int m,*p; p=&a[0][0]; m=(*p)*(*(p+2))*(*(p+4)); (A) 15 (B) 14 (C) 13 (D) 12 16. 有以下程序段 char arr[]="ABCDE"; char *ptr; for(ptr=arr;ptr<arr+5;ptr++) printf("%s\n",ptr); 输出结果是( )。 (A) ABCD (B) A (C)E (D) ABCDE B D BCDE C C CDE D B DE E A E 17. 有以下程序 main() {int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); } 程序运行后的输出结果是( )。 (A)运行后报错 (B)6 6 C)6 11 (D)5 10 18. 以下程序运行后,输出结果是( )。 main() { char *s="abcde"; s+=2; printf("%ld\n",s); } (A) cde (B) 字符c的ASCII码值 (C)字符c的地址 (D) 出错 19. 以下程序运行后,输出结果是( )。 #include<stdio.h>
(A) 20.
21.
22.
ss(char *s) { char *p=s; while(*p) p++; return(p-s); } main() { char *a="abded"; int i; i=ss(a); printf("%d\n",i); } 8 (B) 7 (C) 6 (D) 5 有以下程序 main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r; printf("%d,%d,%d,%d\n",*p,*q,a,b); } 程序运行后的输出结果是 ( )。 (A)8,7,8,7 (B)7,8,7,8 (C)8,7,7,8 (D)7,8,8,7 以下程序运行后,如果从键盘上输入: book <回车> book <空格><回车> 则输出的结果是( B )。 #include<stdio.h> main() { char a1[80],a2[80],*s1=a1, *s2=a2; gets(s1); gets(s2); if(! strcmp(s1,s2)) printf("*"); else printf("#"); printf("%d/n",strlen(strcat(s1,s2))); } (A) *8 (B) #9 (C) #6 (D) *9 若已定义:int a[9],*p=a;并在以后的语句中未改变p的 值,不能表示a[1] 地址的表达式是( )。 (A) p+1 (B) a+1 (C) a++ (D) ++p
printf("%d \n",res); } 31. 有如下程序段 int *p,a=10,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为( )。 (A) 12 (B) 11 (C) 10 (D) 编译出错 32. 对于基类型相同的两个指针变量之间,不能进行的运算是( )。 (A) < (B) = (C) + (D) 33. 有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是( )。 (A) *p+9 (B) *(p+8) (C) *p+=9 (D) p+8 34. 有如下程序 main() { int n[5]={0,0,0},i,k=2; for(i=0;i ;printf(“%d\n”,n[k]); ) 该程序的输出结果是( )。 (A) 不确定的值 (B) 2 (C) 1 (D) 0 35. 有以下程序 point(char *p) {p+=3;} main() { char b[4]={'a','b','c','d'},*p=b; point(p);printf("%c\n",*p); } 程序运行后的输出结果是( )。 (A)a (B)b (C)c (D)d 36. 若有说明:int i, j=2,*p=&i;,则能完成i=j;赋值功能的 语句是 ( )。 (A) i=*p; (B) p*=*&j; (C) i=&j; (D) i=**p; 37. 以下定义语句中,错误的是( )。
(C) 语句"*p=r;"把变量r的值赋给指针变量p (D) 语句"*p=r;"取变量r的值放回p中 27. 下列程序执行后的输出结果是(小数点后只写一位) ( )。 (A) 6 6 6.0 6.0 (B) 6 6 6.7 6.7 (C) 6 6 6.0 6.7 (D) 6 6 6.7 6.0 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); } 28. 若已定义: int a[ ]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是( )。 (A) a[p-a] (B) *(&a[i]) (C) p[i] (D) a[10] 29. 下列程序执行后的输出结果是( ) 。 (A) 3 (B) 6 (C) 9 (D) 随 机数 main() { int a[3][3], *p,i; p=&a[0][0]; for(i=0; i<9; i++) p[i]=i+1; printf("%d \n",a[1][2]); } 30. 下列程序的输出结果是 ( )。 (A) 4 (B) 6 (C) 8 (D) 10 int b=2; int func(int *a) { b += *a; return(b);} main() { int a=2, res=2; res += func(&a);
38.
39.Biblioteka 40.41.42.
(A) int a[]={1,2}; (B) char *a[3]; (C) char s[10]="test"; (D) int n=5,a[n]; 以下选项中,不能正确赋值的是( )。 (A) char s1[10];s1="Ctest"; (B) char s2[]={'C', 't', 'e', 's', 't'}; (C) char s3[20]="Ctest"; (D) char *s4="Ctest\n" ; 以下程序调用findmax函数返回数组中的最大值 findmax(int *a,int n) { int *p,*s; for(p=a,s=a; p-a<n; p++) if ( ) s=p; return(*s); } main() { int x[5]={12,21,13,6,18}; printf("%d\n",findmax(x,5)); } 在下划线处应填入的是( )。 (A) p>s (B) *p>*s (C) a[p]>a[s] (D) p-a>p-s 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入 三个整数分别赋给变量a、b、c的语句是( )。 (A) scanf("%d%d%d",&a,&b,d); (B) scanf("%d%d%d",&a,&b,&d); (C) scanf("%d%d%d",a,b,d); (D) scanf("%d%d%d",a,b,*d); 有以下程序 main() { char s[]="159",*p; p=s; printf("%c",*p++);printf("%c",*p++); } 程序运行后的输出结果是( )。 (A)15 (B)16 (C)12 (D)59 若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出