首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知C源程序如下: /**************************************************/ /* 功能:检查输入的标识符是否符合C语言规则 */ /**************************
已知C源程序如下: /**************************************************/ /* 功能:检查输入的标识符是否符合C语言规则 */ /**************************
admin
2011-01-12
45
问题
已知C源程序如下:
/**************************************************/
/* 功能:检查输入的标识符是否符合C语言规则 */
/**************************************************/
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
#include<malloc.h>
char*IsLegal(char*CheckWorD) ;
const int MaxWordLen=32;
char*ErrorMessages[]={ /*错误信息列表*/
"合法!",
"首字符只能是字母或下划线!",
"常、变量只能由字母、下划线和数字构成!",
"常、变量标识不能用C语言关键字!"。
"常、变量标识不能用C语言预定义函数名!",
"内存不够!"
};
int main()
{
char*Prompt="C语言标识符的命名要遵守以下原则:";
char*TestWord;
int i;
TestWord=(char*)malloc(sizeof(char)*MaxWordLen);
/*TestWord存放用户输入*/
if(!TestWorD)
return 1;
/*显示部分提示信息*/
puts(Prompt);
for(i=1;i<=4;i++){
puts(ErrorMessages
);
}
while(1){
printf("\n\n请输入一个标识符(大写的Q退出):");/*提示*/
scanf("%s",TestWorD) ; /*得到用户输入*/
if(toupper)(TestWord[0]))==’0’)
break; /*循环出口*/
prind("\n%s %s",TestWord,IsLegal(TestWorD) );/*判定标识符的合法性*/
}
free(TesfWorD) ;
return 0;
}
/*此函数检验标识符命名的合法性*/
char*IsLegal(ehar*CheckWorD)
{
char*KeyWords[]={"auto","break","case","char","continue","const","default",
"do","double","else","enum",extern","float","for","goto",
"if","int","long","noalias","register","return","short",
"signed","sizeof","static","struct","switch","typedef",
"union","unsigned","void","volatile","while","defined",
"define","undef","include","ifdef","ifndef","endif","line",
"error","elif","pragma"}; /*C关键字列表*/
char*Functions[]={"close","crest","eof","fclose","fcloseall","feof","fopen",
"ferror","fgetchar","fgets","fprintf","fputc","fputchar",
"fseek","get","putch","putc","printf","open","putchar",
"puts","read","scanf","abs","acos","asin","math","atan",
"atan2","atof","atoi","atol","ceil","dos","cosh",ecvt",
"exp","fabs","floor","fmod","frexp","itoa","labs","ldexp",
"log","log10","modf","pow","rand","sin","sqrt","srand",
"strtod","strlol","tan","tanh","ultoa","memset","strcpy",
"strcat","strchr","strcrap","calloc","isalnum","isalpha",
"toascii","tolower","tollpper","exit"); /*C主要预定义函数列表*/
char*Others="_"; /*’_’也可以用于关键字,但我们不推荐您使用!*/
int WordLength,i;
char*WordTemp;
WordLength=strlen(CheckWorD) ;
/*检查标识符命名原则1*/
if((isalpha(CheckWord[0])==0)&&(CheckWord[0]!=Others[0]))
return ErrorMessages[1];
/*检查标识符命名原则2*/
for(i=0;i<WordLength;i++)
if((isalnum(CheekWord
==0)&&(CheckWord
!=Others[0]))
return ErrorMessages[2];
/*检查标识符命名原则3*/
for(i=0;i<44;i++)
{
if(!strcmp(CheckWord,KeyWords
))
return ErrorMessages[3];
}
/*检查标识符命名原则4 */
for(i=0;i<69;i++)
{
if(!stremp(CheckWord,Functions
))
return ErrorMessages[4];
}
return ErrorMessages[0];
}
参照QESAT/C软件分析与测试工具的规定,画出程序中所有函数的控制流程图;
选项
答案
[*]
解析
转载请注明原文地址:https://kaotiyun.com/show/dwNZ777K
本试题收录于:
四级软件测试工程师题库NCRE全国计算机四级分类
0
四级软件测试工程师
NCRE全国计算机四级
相关试题推荐
阅读以下应用说明及VisualBasic程序代码,将应填入(n)处的字句写在对应栏内。【应用说明5.1】本应用程序的窗体中有一个下拉式列表框(名称为Combo1)和两个文本框(名称分别为Txt1和Txt2)。运行时,用户从Combo1的列表中
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明]邻接表是图的一种顺序存储与链式存储结合的存储方法。其思想是:对于图G中的每个顶点vi,将所有邻接于vi的顶点vj连成一个单链表,这个单链表就称为顶点vi的邻接表,其中表头称作顶
阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于统计一个英文句子中单词的个数N。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】以下程序的功能是设计一个栈类stack<T>,并建立一个整数栈。【程序】#include<iostream.h>#include<stdli
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。【程序】#include<iostrea
请认真阅读以下函数说明、图及C程序,将程序段中(1)~(7)空缺处的语句填写完整。【说明】一般的树结构常采用孩子一兄弟表示法表示,即用二叉链表代表树的存储结构,链表中节点的两个链域分别指向该节点的第一个孩子节点和下一个兄弟节点,例如,如图
请将图4-9、图4-10和图4-11流程图中(1)~(4)空缺处的内容填写完整。函数f_str(char*str,chardel)的功能是;将非申字符串str分割成若干个子字符串并输出,del表示分割时的标志字符。例如,若str的值为“669816
函数fib1和fib2存在错误,只需分别修改其中的一行代码即可改正错误。(1)函数fib1不能通过编译,请写出fib1中错误所在行修改正确后的完整代码。(2)函数fib2在n≤2时不能获得正确结果,请写出fib2中错误所在行修改正确后的完整
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。【说明】设有3n+2个球互连,将自然数1~3n+2分别为这些球编号,使相连的两球编号之差的绝对值正好是数列1,2,…,3n+1中的各数,如下图所示:其中填自然数
阅读以下说明,回答问题1至问题5。[说明]客户机TUser连接终端服务器TServer的网络拓扑示意图如图2-1所示。关于终端服务器的安装,说法正确的是______。A.在安装Windows2003操作系统时已默认安装终端服务
随机试题
拥有世界上最大的电视新闻节目公司是()
A.胃液酸度升高B.胃液酸度正常或减少C.胃液酸度常减少D.胃液酸度明显升高E.胃液酸度明显减少胃泌素瘤
A.甲状腺癌B.甲状舌管囊肿C.单纯性甲状腺肿D.甲状腺腺瘤E.甲状腺功能亢进症男性,16岁,发现颈部单发性肿块3年。查体:甲状软骨部位有直径2cm大小的肿块,表面光滑,边界清楚,随伸舌、缩舌运动而上下移动,听诊血管杂音不明显,可能的诊断是
重症肺炎和轻型肺炎的区别是
A.电解质输液B.营养输液C.非胶体输液D.血浆代用液E.非电解质输液氯化钠注射液为()。
2004年3月3日,某自来水公司发布了一个文件,称以后凡需要安装自来水管的建筑工程,须按其指定到某机电公司购买铺设自来水管道所需要的水龙头等设备,然后拿着购买单据到自来水公司申请供水。对此不正当竞争行为,谁有权对其进行行政处罚?
账页是会计账簿的主体,会计账簿由若干账页组成,下列各项属于账页内容的是()。
中学、小学校园周围()范围内不得设立互联网上网服务营业场所。
已知3个类O,P和Q,类O中定义了一个私有方法F1和一个公有方法F2,类P中定义了一个公有方法F3,类P为类O的派生类,类Q为类P的派生类,它们的继承方式如下所示:classP:publicO{…}classQ:privateP
Weoftenpassonlittlebitsofinformationtoourchildren,notknowingiftheyaretrue,andonlybecausetheywere(1)______
最新回复
(
0
)