【www.myl5520.com--计算机考试】
我的c语言错题
篇一:c语言找错题
错的
1.算法的时间复杂度,是指执行算法所需要的工作量,可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。算法的空间复杂度是指执行这个算法所需要的内存空间。
2.数据的逻辑结构反映的是元素数据之间的逻辑关系,与使用的计算机无关。
3.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的候选码或候选键。从二维表的所有候选键中选取一个作为用户使用的键称为主键或主码。
4.确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明中确定的各种需求
5.数据流图用于抽象描述一个软件的逻辑模型,它由一些特定的图符构成,包括4个方面,即加工、数据流、存储文件、源和潭。
6.选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空
7.进行逻辑或运算,在已知其中一个运算对象为真的情况下,不必判断另外一个运算对象的真假
8.函数调用时,函数返回值的类型既不由主调函数类型所决定,也不由return语句中的表达式类型所决定,更不是由系统临时决定,而是由定义该函数时所指定的数值类型所决定。
scanf函数中的“%c”表示通过键盘只读入一个字符型的数据
一维数组的一般定义格式为:类型说明符 数组名[常量表达式]。其中,“[]”中的内容可以是整型常量,也可以是整型表达式。不可以是变量
。编译预处理命令的特点有:①为了区分一般的语句,预处理命令行都必须以#开始,结尾不加分号;②预处理命令可以放在程序中的任意位置;③在程序中凡是以#开始的语句都是预处理命令行。
①&用按位与运算将特定位清0或保留特定位;②|用按位或运算将特定的位置设置为1;③^用按位异或运算将某个变量的特定位翻转或交换两个变量的值。
打开文件函数fopen()的调用形式为:fp=fopen(文件名,文件使用方式)。“文件使用方式”说明:方式“r”为以输入方式打开一个文本文件;方式“a+”为以读/写方式打开一个文本文件,保留文件中原有的数据;方式“w+”为以读/写方式建立一个新的文本文件;方式“r+”为以读/写方式打开一个文本文件。
数据元素是由多个数据项组成,数据是能够被计算机识别、存储和加工处理的信息载体,数据处理的最小单位是数据项。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级上,它还未深入到设备级上(如磁盘及磁盘操作)。
随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了入们难以控制软件发展的局面,即所谓的“软件危机”。
在关系表中,每一列称为一个属性,对应表中的一个字段;每一行称为一个元组,对应表中的一条记录。
注意表达吃和语句的区别
C源程序经过程序编译之后生成一个后缀为“.obj”的二进制文件(称为目标文件),然
后由称为“连接程序”的软件包文件与C语言提供的各种库函数连接起来生成一个后缀为“.exe”的可运行文件。
本题考查结构体所占的存储单元。sizeof(struct date)=2+2+2=6(因为结构体的3个成员均为int类型,各占两个存储单元)。
C语言规定,字符常量在程序中要用单引号括起来。首先判断c1是否为小写字母的主要条件c1>='a'和c1<='z'是逻辑与关系,其次选项A)的这种形式C语言中没有,所以选项D)正确。
。① do… while语句、while语句、for语句所实现的循环可以相互替代;② do…while语句和while语句的区别是do…while语句至少执行一次,再判断循环条件,while语句是先判断条件再执行。
字符替换定义格式为:# define 标识符(形参表)形参表达式。题中F是代表形参表达式的标识符(字符串)。
①字符替换格式:#define 标识符 字符串,行末不加分号;②双引号中出现的宏名不替换;③如果提前结束宏名的使用,程序中可以使用#undefine;④在进行宏定义时,宏定义能层层置换,能够嵌套。
Sizeof计算出运算对象在计算机的内存中所占用的字节数量
rewind(fp)的功能是:使fp指定的文件的位置指针重新定位到文件的开始位置。
类是对一类具有相同的属性和方法对象的描述,属性用于描述对象的状态,方法用于表示对象的行为,基于同一个类产生的两个对象是可以分别设置自己的属性值的。
数据库设计目前一段采用生命周期法,即将整个数据库应用系统的开分解成目标独立的若干阶段,它们是:需要分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。在数据库设计中采用上面几个阶段中的前四个阶段,并且重点以数据结构和模型设计为主线。
数据库管理一般包括:数据库的建立、数据库的调整、数据库的重组、数据库的安全性控制与完整性控制、数据库的故障恢复和数据库的监控。
一个C语言源程序无论包括了多少函数,总是从main函数开始执行,从main函数结束。 C语言中允许进行不同数据类型的混合运算,但在实际运算时,要先将不同类型的数据转化成同一类型再进行运算。类型转换的一般规则是:①运算中将所有char型转换成int型,float型转换成double型;②低级类型服从高级类型,并进行相应的转换,数据类型由低到高的顺序为:char->int->unsigned-> long->float->double;③赋值运算中最终结果的类型,以赋值运算符左边变量的类型为准,即赋值运算符右端值的类型向左边变量的类型看齐,并进行相应转换。
①break语句可以出现在循环体内及switch语句体内,不能用于其他的语句;②continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,而接着转去判定循环条件是否成立,从而确定下一次循环是否继续执行,也就是说执行contiune语句不会使整个循环终止;③在循环体内使用break语句会使循环提前终止;④从多层循环嵌套中退出时,可以使用goto语句或者break语句。
【解析】本题考查函数调用的有关知识点。函数调用①可以出现在表达式中;②可以作。①字符串的长度是指字符串中字符的个数,但不包含字符串结束符;②以反斜为独立的语句存在;③可以作为一个函数的实参。
线“\”开头的特殊字符序列,意思是把反斜线后面的字符序列转换成特定的含义,而不是原来的含义,不包含在字符串长度之内,“\”连同后面的字符为一个长度。
二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。
数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是j,说明它前面还有j 列,有j 个元素,所以共有i*m+j个元素
。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:①定义仅仅是符号替换,不是赋值语句,因此不做语法检查;②为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;③双引号中出现的宏名不替换;④使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。
结构化分析的常用工具有数据流图、数据字典、判定树和判定表。
数据模型描述的内容包含数据结构、数据操作和数据约束。
scanf()函数中格式控制字符串是为了输入数据用的,无论其中有什么字符,在输入数据时,按照一一对应的位置原样输入这些字符。
不同的编译系统或计算机系统对几类整型数所占用的字节数有不同的规定。long、int和short类型数据占用内存大小是由选择何种C编译系统决定的。
在输入格式控制符中指定变量j的输入格式控制符为“%2d”,即变量j所占的宽度为2,所以变量j只接收输入数据的前两位,从第3位开始直到空格之间的输入整数都会被保存到变量y中,因为y为浮点型数据,所以输出结果为选项B)。
:①C语言中,二维数组或多维数组元素排列的顺序是按行存放;②不同数组的元素之间可以相互赋值;
字符串复制函数strcpy(s1,s2)是把s2的字符串复制给s1,执行后s1=089;字符串连接函数strcat(s1,s2),功能是把s2 字符串连接到s1字符串的末尾,执行后s1=08967。
①字符替换格式:#define 标识符 字符串,标识符称为宏名,无类型;
。①文件由数据流形式组成,可以按数据的存放形式分为二进制文件和文本文件;②C语言既能读写文本文件,又可以读写二进制文件。
】“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s="ABCDEF"语法错误。“**s”和“s”一样;“*s”是指变量地址,不能给其赋字符串。
;++(p->x)是将p->x的值加1
100以内的素数
Main()
{int n,i;
For(n=2;i<100;n++)
{for(i=2;i<n;i++)
If (n%i==0) break;
If(i>=n) printf(“%10d”,n);}}
冒泡排序的主题函数
For(i=0;i<n-1;i++)
For(j=0;j<n-1-i;j++)
If(a[i]>a[i+1])
{t=a[i]; a[i]=a[j+1]; a[j+1]=t;}
对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
DFD图(数据流图)是以图形的方式描述数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能,它是需求分析阶段的图形工具。盒式图(N-S图)、问题分析图(PAD图)
和PDL(伪码)是详细设计的常用工具。
在E-R图中用矩形表示实体集,在矩形内写上该实体集的名字,用椭圆形表示属性,在椭圆形内写上该属性的名称,用菱形表示联系,菱形内写上联系名。
外模式也称子模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,它是由概念模式推导出来的,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。一个概念模式可以有若干个外模式。
格式字符X或x是以十六进制无符号形式输出整型数(注:输出时不显示前导0x或0X)。 字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不能用一对大括号对括起来。
若在scanf函数的格式控制字符串中插入了其他的字符,则在输入时要求按一一对应的位置原样输入这些字符,我们必须把“a= ”、“b=”、“c=”也输入。其中的“,”也要输入的记住要原样输入
①定义函数时,形参的类型说明必须放在函数头部分;②return后的值可以是任意合法的表达式;③如果函数的形参与实参的类型不一致,则以函数值的类型为准。
Strcmp 比较两个字符串是 逐字对比判断字符的ASCII码值大小。
2、比较到某个字符判断出大小时立即结束。输出非零。
3、字符串相同时输出零。
16位编译器char :1个字节char*(即指针变量): 2个字节short int : 2个字节int: 2个字节unsigned int : 2个字节float: 4个字节double: 8个字节long: 4个字节long long: 8个字节unsigned long: 4个字节
二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。
在最坏情况下,冒泡排序所需要的比较次数为n(n-1)/2;简单插入排序所需要的比较次数为n(n-1)/2;希尔排序所需要的比较次数为O(n1.5);堆排序所需要的比较次数为O(nlog2n)。
数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序
在对程序进行了成功的测试之后将进入程序调试,程序调试的任务是诊断和改正程序中的错误。
由于字符串“\t\"\065\xff\n”中\t、\"、\065、\xff和\n均为转义字符,所以字符串的长度为5。
在C语言中,函数的实参单元与形参单元在内存中分配不同的存储单元。在调用函数时,给形参分配临时存储单元,并将实参对应的值传递给形参,在被调用函数中对形参存储单元中的值进行运算,最后通过return语句把函数值返回调用函数。当调用结束后,形参单元被释放,实参单元仍保留并维持原值。
若有说明int m[3][4]={3,9,7,8.5},(*q)[4];和赋值语句q=m;,则对数组元素m[i][j](其中0<=i<3,0<=j<4)值的
正确引用为( )。】*(q+i)指向第i行首地址,*(*(q+i)+j)代表第i行第j个元素。 Char*line【5】定义line是一个数组,每个数组元素是一个基型为char的指针变量【】的优先级别比*高
字符串比较不能用“==”,要用strcmp(s1,s2)函数
在联合体变量所有成员公用一段存储空间,它们的值为最后一次对其中变量所赋的值,所以u.t='a'。
字符串输入函数fgets()的调用形式为:fgets(s,n,fp)。s可以是一个字符数组名,或是
指向字符串的指针;n为要读取的最多的字符个数;fp是指向该文件的文件型指针。字符串输入函数的功能是:从fp所指向的文件中读取长度不超过n-1个字符的字符串,并将该字符串存放到字符数组s中。
并、差、笛卡儿积、投影和选择是5种基本的运算,其他运算即交、连接和除,均可以通过5种基本的运算来表达。
数据库有两层映像,即外模式/模式和模式/内模式映像。模式/内模式映像定义数据库全局逻辑结构与存储结构之间的对应关系。
在定义的链表中,若只含有一个指针域来存放下一个元素地址,称这样的链表为单链表或线性链表。
在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。
数据库的三级模式结构是指数据库系统的外模式、模式和内模式。一个数据库可以有多个外模式,但只有一个模式和一个内模式。
关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。
数据管理技术发展的三个阶段中,只有人工管理阶段,没有操作系统,没有管理数据的软件,数据处理方式是批处理。在文件系统阶段,操作系统中已经有了专门数据管理软件,一般称为文件系统。在数据库系统阶段,出现了统一管理数据的专门软件系统,即数据库管理系统。
在C语言中,switch()后的一对圆括号中可以是整型表达式或字符表达式。case语句后面的常量表达式的类型必须与switch后圆括号中的表达式类型相同,各case语句标号的值应该互不相同。选项A)中case后面的常量表达式为实型,所以不正确;选项D)中case后面出现了变量表达式,所以选项D)错误。
当输入为"Fool&Swalow"时,下面程序的执行结果是( )。
#include<stdio.h>
main()
{ char c;
while(c!='?')
{ c=getchar();
putchar(c);
}
}本程序是通过getchar()函数读入字符,并通过putchar()函数将字符逐个输出,当用户输入“?”时停止输出。Fool?
】“\b”格式符表示退格,功能是将它后面的字母把它前面的字母覆盖,导致“\b”格式符前面的字母不能输出;“\'”格式符表示输出单引号字符;“\\”格式符表示输出反斜线字符。
strlen(s)返回s字符串中字符的个数,若s是一个数组,则返回数组元素的个数其中包含字符串的结束自符。
不能使用关系运算符比较两个字符串的大小。
软件调试方法的是( )。A)回溯法强行排错法原因排除法
耦合可以分为下列几种,它们之间的耦合度由高到低排列:
C语言选择题(最全版试题)【错题】
篇二:c语言找错题
50203、 以下( )是正确的常量。
答案:D
A、 E-5
B、 1E5.1
C、 'a12'
D、 32766L
50207、 以下( )是错误的整型常量。
答案:B
A、 -0xcdf
B、 018
C、 0xe
D、 011
50301、 若有定义:int a=2; 则正确的赋值表达式是( )。
答案:A
A、 a-=(a*3)
B、 double(-a)
C、 a*3
D、 a*4=3
50308、 若有定义:int x=2,y=3;float i;,则以下符合C语言语法的表达式是( )。 答案:B
A、 x=x*3=2
B、 x=(y==1)
C、 i=float(x)
D、 i%(-3)
50402、 下面叙述中,错误的是( )。
答案:A
A、 其算术运算对象不包含函数
B、 %(模运算符)的运算对象只能为整型量
C、 算术运算符的结合方向是"自左至右"
D、 自加和自减运算符的结合方向是"自右至左"
50406、 若有定义:int a=1,b=2,c=3; 则语句 ++a||++b&&++c;运行后b的值为( )。 答案:C
A、 1
B、 0
C、 2
D、 3
50407、 若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是( )。
答案:B
A、 7
B、 8
C、 9
D、 10
50602、 下面叙述中,( )不是结构化程序设计三种基本结构的共同特点。 答案:A
A、 先判断后执行
B、 单入口,单出口
C、 程序中没有执行不到的语句
D、 无死循环
50603、 结构化程序设计不包括( )。
答案:A
A、 最优化
B、 自顶而下,逐步细化
C、 模块化设计
D、 结构化编码
50702、 已知char a='R'; 则正确的赋值表达式是( )。
答案:A
A、 a=(a++)%4
B、 a+2=3
C、 a+=256--
D、 a='\078'
50703、 已知int a='R'; 则正确的表达式是( )。
答案:A
A、 a%10
B、 a=int(3e2)
C、 2*a=a++
D、 a=a+a=a+3
50801、 以下的if语句中,x的值一定被重新赋值的是(
答案:B
A、 if(x==y) x+=y;
B、 if(x>y && x!=y );
x+=y;
C、 if(x!=y)
scanf("%d",&x);
else
scanf("%d",&y);
D、 if(x<y)
{ x++;y++; }
50808、 以下程序的运行结果是( )。
void main()
{
int n='c';
switch(n++)
{
default: printf("error "); break;
case 'a':
case 'b': printf("good "); break;
case 'c': printf("pass ");
case 'd': printf("warn "); 。 )
}
}
答案:C
A、 pass
B、 warn
C、 pass warn
D、 error
51107、 若有定义int a[2][3];则对数组元素的非法引用是( )。
答案:D
A、 a[0][1/2]
B、 a[1][1]
C、 a[4-4][0]
D、 a[0][3]
51109、 若有定义int a[][3]={1,2,3,4,5,6,7,8,9};则表达式sizeof(a)/sizeof(a[0]) 的值为( )。
答案:D
A、 3
B、 4
C、 5
D、 9
51207、 以下程序段运行后屏幕输出为( )。 \\ 为一个 \
char str[]="ab\\cd";
printf("%d",strlen(str));
答案:B
A、 4
B、 5
C、 6
D、 7
51209、 若有定义:char str1[6]="abcdm",*ps,*str2="abcdef";( )是正确的。 答案:B
A、 strcpy(str1,str2);
B、 表达式strcmp(str1,str2)的值大于0
C、 str1=str2;
D、 表达式strlen(str1)的值为6c语言找错题。
51307、 若有如下函数定义:
int fun()
{
static int k=0;
return ++k;
}
以下程序段运行后屏幕输出为( )。
int i;
for(i=1;i<=5;i++) fun();
printf("%d",fun());
答案:D
A、 0
B、 1
C、 5
D、 6
51403、 以下叙述中,正确的是( )。
答案:A
A、 宏展开不占用运行时间,只占用编译时间
B、 预编译处理命令行必须以分号结束
C、 一个源程序只能有一个预编译处理命令行
D、 使用带参数的宏定义时,应该说明每个参数的数据类型
51407、 下面程序的输出结果是( )。
#include <stdio.h>
#define SQR(x) (x*x)
void main()
{
int a,b=3;
a=SQR(b+2);
printf("\n%d",a);
}
答案:A
A、 11
B、 25
C、 不定值
D、 产生错误
51502、 对于基类型相同的两个指针变量之间,不能进行的运算是( )。 答案:C
A、 <
B、 =
C、 +
D、 -
解释:指针表示两个地址。相加没有意义。相减表示两个地址之间的偏移量。 51509、 下面语句正确的是( )。
答案:B
A、 int *p; *p=20;
B、 char *s="abcdef"; printf("%s\n",s);
C、 char str[]="abcd"; str++;
D、 char str[]={'a','b','c'};printf("%s",str);
51602、 若函数fun的函数头为:
int fun(int i, int j)
且函数指针变量p定义如下:
int(*p)(int i, int j);
则要使指针p指向函数fun的赋值语句是( )。
答案:B
A、 p=*fun;
B、 p=fun;
C、 p=fun(i,j);
D、 p=&fun;
51607、 下面程序的输出结果是( )。 #include<stdio.h>
void main()
{
int i;
char *s="abc";
for(i=0;i<3;i++)
printf("%s\n",s+i);
}
答案:A
A、 abc
bc
c
B、 c
bc
abc
C、 abc
c
bc
D、 a
ab
abc
错题集c语言
篇三:c语言找错题
错题集相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。
而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c) 合理使用优先级可以极大简化表达式。
基本表达式 1级
基本表达式(Primary expressions),主要是用于运算符之间,做为运算数。
标识,常量,字符串文字量,优先级提升表达式最优先执行。
优先级提升表达式是指圆括号包围的表达式,如“( expression )”
后缀表达式 2极c语言找错题。
postfix-expression [ expression ],数组下标运算。
postfix-expression ( argument-expression-list),函数调用,括号内的参数可选。 postfix-expression . identifier,成员访问,
postfix-expression -> identifier,成员访问,->号之前应为指针。
postfix-expression ++,后缀自增
postfix-expression --,后缀自减
( type-name ) { initializer-list }
( type-name ) { initializer-list , } 复合初始化,C99后新增。例如 1
2
3
4
5
6
7
8
9
10 int* a = (int[]) { 1, 2, 3 }; //等价于 int unamed[] = {1, 2, 3}; //unamed表示一个不可见的变量名。 int* a = unamed;
单目/一元运算 3级
++ unary-expression 前缀自增
-- unary-expression 前缀自减
unary-operator cast-expression 单目转型表式式, 包括 取地址& ,提领 * , 正号+ ,负号- 位反~ 逻辑否!。
sizeof unary-expression 求类型长度,对表达式求类型长度
sizeof ( type-name ) 求类型长度
强制类型表达式 4级
( type-name ) cast-expression,强制表达式成为type-name指定的类型。
乘法表达式 5级
“ * ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。
加法运算符 6级
“ + ”加法运算符;“ - ”减法运算符。
移位运算符 7级
<< 左移运算符;>> 右移运算符。
关系运算符 8级
<、<=、>、>=关系运算符。
相等运算符 9级
“ == ”等于运算符;“ != ”不等于运算符。
位与运算符 10级c语言找错题。