c语言谓词函数定义 c语言谓词函数定义怎么写

菜鸟问C语言题啦~\(≥▽≤)/~你这个搞的好复杂看看这个吧
#includestdio.h
#includestring.h
void main()
{
char str[100];
int len,i;
printf("please input a string:");
gets(str);
len=strlen(str);
for(i=0;i=len/2;i)
{
if(str[i]!=str[len-1-i])
{
printf("%s 不是回文\n",str);
break;
}
}
if(ilen/2)
printf("%s 是回文\n",str);
}
谁能给我关于C语言的资料啊全国计算机等考二级C语言模拟试题一一、选择题(1)~(10)每小题2分 ,  (11)~(50)每小题1分,共60分)下列各题A)、B)、c)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分 。(1)在数据结构中,从逻辑上可以把数据结构分为_______ 。A)动态结构和静态结构 B)紧凑结构和非紧凑结构c)线性结构和非线性结构D)内部结构和外部结构答案c语言谓词函数定义:C评析c语言谓词函数定义:逻辑结构反映数据元素之间的逻辑关系,线性结构表示数据元素之间一对一的关系,非线性结构表示数据元素之间一对多或多对一的关系 。(2)若进栈序列为l,2 , 3 , 4,进栈过程中可以出栈,则下列不可能的一个出栈序列是_______ 。A)1,4,3,2B)2 , 3,4,lC)3,1,4,2D)3,4, 2,1答案:C评析:栈是一种后进先出表,选项c中 , 先出栈的是3,说明此时栈内必然有1,2 , 由于l先于2进栈,所以l不可能在2之前出栈,故选项C这种出栈序列是不可能的 。(3)排序方法中,将整个无序序列分割成若干小的子序列并分别进行插入排序的方法,称为_______ 。A)希尔排序B)冒泡排序c)插入排序D)选择排序答案:A评析:希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序 。(4)在顺序表(3,6,8,10,12,15 , 16,18 , 21,25,30)中 , 用二分法查找关键码值11 , 所需的关键码比较次数为_______ 。A)2 B)3C)4D)5答案:C评析:二分法查找是用关键码与线性表的中间元素比较 , 然后根据比较结果来判断是结束查找 , 还是在左边或者右边子表按相同的方法继续查找 。本题中 , 与ll比较的关键码分别为15,8,10,12四个 。(5)对于n个结点的单向链表(无表头结点),需要指针单元的个数至少为_______ 。A)n-1B)nC)n l D)2n答案:C评析:在n个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要n 1个指针单元 。(6)在软件开发过程中 , 软件结构 设计 是描述_______ 。A)数据存储结构 B)软件体系结构C)软件结构测试D)软件控制过程答案:B评析:从工程管理角度来看,软件设计分两步完成:概要设计和详细设计 。概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式 。(7)模块本身的内聚是模块独立性的重要性度量因素之一 。在7类内聚中,具有最强内聚的一类是_______ 。A)顺序性内聚 B)过程性内聚 c)逻辑性内聚D)功能性内聚答案:D评析:内聚性是一个模块内部各元素间彼此结合的紧密程度的度量 。内聚共有7类,它们之间的内聚性由弱到强排列顺序为:偶然内聚、逻辑内聚、时间内聚、过程内聚、 通信 内聚、顺序内聚和功能内聚 。(8)数据存储和数据流都是_______,仅仅是所处的状态不同 。A)分析结果B)事件C)动作D)数据答案:D评析:数据流图有4种成分:源点或终点、处理、数据存储和数据流 。数据存储是处于静止状态的数据,数据流是处于运动中的数据 。(9)数据的完整性是指数据的正确性、有效性和_______ 。A)可维护性B)独立性C)安全性D)相容性答案:D评析:数据模型的完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性 。(10)关系代数运算是以_______为基础的运算 。A)关系运算B)谓词运算c)集合运算 D)代数运算答案:C评析:关系代数运算是以关系代数作为运算对象的一组高级运算的集合 。它的基本操作是并、交、差、笛卡尔积,另外还包垂直分割(投影)、水平分割(选择)、关系的结合(连接)等 。(11)能将高级语言程序转换成目标语言程序的是_______ 。A)调试程序B)解释程序C)编译程序 D)编辑程序答案:C评析:用高级语言编写的程序称为"源程序",而计算机只能识别和执行由0和l组成的二进制指令,所以高级语言必须先用一种称为"编译程序"的软件,把源程序翻译成二进制形式的"目标程序" 。(12) _______是构成c语言程序的基本单位 。A)函数B)过程c)子程序D)子例程答案:A评析:c程序是由函数构成的 。一个c源程序至少包含一个main函数,也可以包含一个main函数和若干个其他函数,因此,函数是c程序的基本单位 。(13)可以在C语言中用做用户标识符的是_______ 。A)voidB)as_b3C)forD)2cdefine_123-abcDoWORDIfcas SIG答案:B评析:c语言规定,标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线 。另外还需要注意的是关键字不能作标识符 。选项A中void,C中for都为关键字,D中2c以字母开头 。(14)若有以下类型说明语句:char wc语言谓词函数定义;int x;float y,z;则表达式w*x z-y的结果为________类型 。A)floatB)char C)intD)double答案:A评析:在进行运算时,不同类型的数据参加运算,需要先将其转换成同一类型的数据,然后再进行运算 。转换的顺序由低到高为:char,short→int→unsigned→long→double→float,故结果为float型 。(15)main((){ float x=123A56;printf("%-5.2f\n",x);}以上程序输出的结果是________ 。A)123.4B)123.5 C)123.45D)123.46答案:D评析:f格式符,用来输出实数,以小数形式输出 。"%-m.nf"的含义是:输出数据共占m列,其中n位小数,如果输出位数小于m 。则右端补空格 。如果总长度大于列数,则按实际情况四舍五入输出 。(16)下面语句的输出结果是________ 。Printf("%d\n",strlen("\t\"\065\xff\n"));A)14 B)8C)5D)输出项不合法,无正常输出答案:C评析:在c语言中,以"\"开头的字符均为转义字符 , 其中"\"后可跟l~3位八进制数或在"\"后跟字母x及l~2位十六进制数 , 以此来代表一个特定的字符 。(17)下列程序的输出结果是________ 。main(){ int a=0,b=0,c=0;if(a0lIb0)c;printf("\na=%d,b=%d,c=%d",a,b , c);}A)a=0,b=0 , c=0B)a=l,b=l,c=1C)a=l,b=O, c=ID)a=0, b=1.c=1答案:C评析:"︱︱"是或运算,它有个"短路"的特点需特别注意,当"︱︱"运算符左边的表达式的值为真时 , 则程序就不再对"︱︱"右边的表达式的值进行运算 , 而是使得整个表达式的值直接为真 。(18)下列程序的输出结果是_________ 。Main(){ int i;for(i=1;i l;i){ if(i4){printlf("%d",i);break;}}printf("%d",i);}A)55B)56c)程序错误,没有输出D)循环条件永远为真,死循环答案:B评析:本程序中有个for循环,但注意到for循环的条件是"i l",也就是只要i l的值为真(非零值均为真) , 就执行循环 。当i=l的时,i l的值为真,判断if条件不成立,执行i,输出i的值为5 。(19)下列程序的输出结果是_________ 。#define A 100main(){ int i=O,sum=O;do{ if(I==(i/2)*2)continue;sum =i;}while(iprintf("%d\n",sum);}A)2500B)2050C)4D)O答案:A评析:本题程序的功能是求1到_99之问(包括1和99)所有奇数之和 。程序中的while循环的终止条件为i=100 , 在while循环体内,如果i是偶数,则执行continue,跳过这一次循环,执行下一次循环,否则求和 。最后输出的值是1到99之间(包括l和99)所有奇数之和(1 99)*50/2=2500 。(20)下列程序的输出结果是_________ 。main(){ int I=3;switch(i){ case 1:case 2:printf("%d" , i);case 3:case 4:break;default:printf("OK");}}A)0B)3C)OKD)没有任何输出答案:D评析:在题中 , i的值为3,由于"case 3:"后面没有break语句,所以继续向下执行"case 4:"后面的语句,由于"case 4:"后面的语句为break强行退出switch语句 , 所以 , 本题没有任何输出 。(21)下列程序执行后的输出结果是________ 。main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,k=2:for(I=0;i3;i){printf("%d" , m[k][i]);}}A)456B)258C)369D)789答案:C评析:根据二维数组的定义得出:m[O][O]=1,m[O][1]=4,m[O][2]=7 , m[1][0]=2,rail][1]=5,m[1][2]=8,m[2][0]=3,m[2][l]=6,m[2][2]=9 , 所以本题的输出是第3行的值m[2][0],m[2][1] , m[2][2] , 即369 。(22)设已定义洱口k为int类型变量,则以下for循环语句_________ 。for(i=0;k=-1,k=1;i,k)printf("****\n");A)判断循环结束的条件不合法B)是无限循环C)循环一次也不执行D)循环只执行一次答案:B评析:本题定义了一个for循环,循环变量是i,但由于本题并没有设置循环条件,所以循环的条件永远默认为真,即无限次执行循环 。(23)下面程序的输出结果是___________ 。unsigned fun(unsigned num){unsigned k=1;do{k*=num%lO;num/=lO;}while(num);return(k);}main(){ unsigned n 。26;printf("%d\n",fun(n));}A)0B)4c)12D)无限次循环答案:C评析:本题定义了一个fun函数 , 用于num求和 , 具体执行过程如下:num=26:k=k*(num%10)=1*(26%10),所以k=6,num=num/10=2;num=2:k=k*(num%10)=6*(2%10),所以k=12,num=num/lO=O;num=O:while条件不成立,所以返回k的值12.(24)已知字母A的ASCII码值是65,字母a的ASCII码值是97,以下程序_______ 。main(){ char a='A';int b=20;printf("%d,%o",(a=a a,a b,b),a 'a'-'A' , b);}A)表达式非法,输出零或不确定值B)因输出项过多,无输出或输出不确定值C)输出结果为20,141D)输出结果为20,141,20答案:C评析:本题中首先输出逗号表达式"a=a a,a b,b"的值,即20 。然后以八进制的形式输出a 'a'-'A'的值为97对应的八进制数141,由于最后一个表达式b没有对应输出格式的输出项表列就不会输出 。(25)C语言函数返回值的类型是由__________决定的 。A)return语句中的表达式类型B)调用函数的主调函数类型c)调用函数时临时D)定义函数时所指定的函数类型答案:D评析:函数值的类型应当是在定义函数时指定的 。在定义函数时对函数值说明的类型一般应该和return语句中的表达式类型一致,如果不_致,则以函数类型为准,即函数类型决定返回值的类型 。本篇文章来源于《点睛考试网》[] ;原文链接地址:
请教C语言高手?。。?/h2>首先,你得明白程序的组成、程序和编译器的关系
编写程序,就相当于写一篇作文 。不过 , 最终读者是计算机 。但是它不识别我们人类的语言,包括我们编写的程序 --- 其实也是一堆按照特定规则编排的字符
这就需要有一个翻译,将我们的“作文”翻译成计算机能够理解的机器代码(CPU指令集) 。编译器就是做了这个“翻译”的工作,当然生成最终可运行的文件还需要链接器等工具,这些暂时不需要知道 。
关键字是在开发编译器时所共同遵守的约定,程序作者不允许使用这些关键字作为自定义的变量或者函数的名称,这些单词已经有他们的意义 。
比如 ,
if表示“如果”,是一种判断结构,return表示返回 , 这些都有对应的既定用途 。
关键字一个明显的特点就是,你的变量名不能使用这些关键字,比如你不能定义一个变量如下
int auto;
这样编译器在“翻译”你的代码的时候会报错 , 你原意是想定义一个整形数值,名字叫做auto 。但是编译器读不懂 。
另外,你可以查看下 , C语言的32个关键字的具体含义,这样也有助于你理解他们的作用 。
c语言中的merge函数merge()是C标准库的函数,主要实现函数的排序和合并,不仅仅是合并,具体要求参照标准库 。
#include"stdafx.h"
#includeiostream
#includealgorithm
#includearray
#includelist
【c语言谓词函数定义 c语言谓词函数定义怎么写】usingnamespacestd;
boolcomp(constinti,constintj){
returnij;
}
intmain(void){
/*自定义谓词*/
std::arrayint,4ai1={1,3,4,5};
std::listintlsti1;
for(constautoi:ai1)
lsti1.push_front(i);//从大到小
std::arrayint,4ai2={2,6,7,8};
std::listintlsti2;
for(constautoi:ai2)
lsti2.push_front(i);
lsti1.merge(lsti2,comp);
std::cout"merge():";
for(constautoi:lsti1)
std::couti"";
std::coutstd::endl;
/*默认谓词*/
std::arrayint,4ai1d={1,3,4,5};
std::listintlsti1d;
for(constautoi:ai1d)
lsti1d.push_back(i);//从小到大
std::arrayint,4ai2d={2,6,7,8};
std::listintlsti2d;
for(constautoi:ai2d)
lsti2d.push_back(i);
lsti1d.merge(lsti2d);
std::cout"merge():";
for(constautoi:lsti1d)
std::couti"";
std::coutstd::endl;
return0;
}
扩展资料
Merge算法的两种接口,把两个有序的数组合并到另一个数组中:
void Merge(int *A, int f, int m, int e){
int temp[e-f 1];
int i,first=f,last=m 1;
for(i=0;i(e-first 1)f=mlast=e;i){
if(A[f]=A[last]) {
temp[i]=A[f];
f;
}
else {
temp[i]=A[last];
last;
}
}
while(fmlast=e){
temp[i]=A[last];
i;
last;
}
while(f=mlaste){
temp[i]=A[f];
i;
f;
}
for(i=0;first=e;i,first){
A[first]=temp[i];
}
}
参考资料来源:百度百科—c语言
关于c语言谓词函数定义和c语言谓词函数定义怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读