c语言程序员考试编程题(C语言程序编程题)

今天给各位分享c语言程序员考试编程题的知识,其中也会对C语言程序编程题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

1、初学编程,大家帮忙看下这道c语言题怎么做?万分感谢2、c语言编程题3、C语言编程题,急求!!!!4、C语言编程题

初学编程,大家帮忙看下这道c语言题怎么做?万分感谢

先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码

#includestdio.h

#includestring.h

#define MAX_ARRAY_SIZE 1024

#define MAX_MAP_SIZE 10

/* 输入数组,连续输入,如:aedabcdaeas  */

int inputArray(char *buff) {

      int len = 0;

      /* 使用fgets来防止缓冲区溢出  */

      if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {

              return 0;

      }

      len = strlen(buff);

      /* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */

      if (buff[len – 1] == ‘\n’) {

              buff[len – 1] = ‘\0’;

              len -= 1;

      }

      return len;

}

int processArray(int len, char *chars, char *map) {

      /* 保存反向映射便于查找  */

      int tmap[128];

      int maplen = 0;

      int i = 0;

      char *p = chars;

      memset(tmap, -1, sizeof(int) * 128);

      for (i = 0; i len; i++) {

              if (*p ‘z’ || *p ‘a’) {

                      return -*p;

              }

              if (tmap[*p] == -1) {

                      if (maplen = MAX_MAP_SIZE) {

                              return -1;

                      }

                      tmap[*p] = maplen;

                      map[maplen] = *p;

                      maplen += 1;

              }

              *p = ‘0’ + tmap[*p];

              p++;

      }

      return maplen;

}

int main() {

      /* 用于输入的字符数组  */

      char buff[MAX_ARRAY_SIZE];

      /* 用于保存转换规则的数组  */

      char map[MAX_MAP_SIZE];

      /* 保存字符数组长度  */

      int len = 0;

      int maplen = 0;

      int i = 0;

      len = inputArray(buff);

      if (len = 0) {

              puts(“Cancelled”);

      } else if (len 10) {

              puts(“Not enough 10 chars”);

      } else {

              maplen = processArray(len, buff, map);

              if (maplen = 0) {

                      puts(“转换结果:”);

                      for (i = 0; i len; i++) {

                              printf(“%c “, buff[i]);

                      }

                      puts(“”);

                      puts(“映射规则:”);

                      for (i = 0; i maplen; i++) {

                              printf(“%c – %d\n”, map[i], i);

                      }

                      puts(“”);

              } else if (maplen == -1) {

                      puts(“Different Chars count is OverLimit of 10”);

              } else if (maplen = -2) {

                      printf(“Unexpected char %c\n”, -maplen);

              }

      }

      return 0;

}

执行结果:

c语言编程题

#include “stdio.h”

#include stdlib.h

#include “time.h”

#define N 10

int main(int argc,char *argv[]){

int a[N],i,j,k,n;

srand((unsigned)time(NULL));

for(k=i=0;iN;printf(++k%20 ? “%3d” : “%3d\n”,a[i++]=rand()%100));

if(k%20)

printf(“\n”);

printf(“Please enter a number…\nn=”);

scanf(“%d”,n);

for(k=N,i=0;ik;i++)

if(n==a[i])

for(k–,j=i–;jk;a[j++]=a[j+1]);

if(k!=N){

printf(“\nDeleted:\n”);

for(j=i=0;ik;printf(++j%20 ? “%3d” : “%3d\n”,a[i++]));

if(j%20)

printf(“\n”);

}

else

printf(“No find…\n”);

return 0;

}

运行样例:

C语言编程题,急求!!!!

DFA 引擎在线性时状态下执行,因为它们不要求回溯(并因此它们永远不测试相同的字符两次)。DFA 引擎还可以确保匹配最长的可能的字符串。但是,因为 DFA 引擎只包含有限的状态,所以它不能匹配具有反向引用的模式;并且因为它不构造显示扩展,所以它不可以捕获子表达式。

传统的 NFA 引擎运行所谓的“贪婪的”匹配回溯算法,以指定顺序测试正则表达式的所有可能的扩展并接受第一个匹配项。因为传统的 NFA 构造正则表达式的特定扩展以获得成功的匹配,所以它可以捕获子表达式匹配和匹配的反向引用。但是,因为传统的 NFA 回溯,所以它可以访问完全相同的状态多次(如果通过不同的路径到达该状态)。因此,在最坏情况下,它的执行速度可能非常慢。因为传统的 NFA 接受它找到的第一个匹配,所以它还可能会导致其他(可能更长)匹配未被发现。

POSIX NFA 引擎与传统的 NFA 引擎类似,不同的一点在于:在它们可以确保已找到了可能的最长的匹配之前,它们将继续回溯。因此,POSIX NFA 引擎的速度慢于传统的 NFA 引擎;并且在使用 POSIX NFA 时,您恐怕不会愿意在更改回溯搜索的顺序的情况下来支持较短的匹配搜索,而非较长的匹配搜索。

使用DFA引擎的程序主要有:awk,egrep,flex,lex,MySQL,Procmail等;

使用传统型NFA引擎的程序主要有:GNU Emacs,Java,ergp,less,more,.NET语言,PCRE library,Perl,PHP,Python,Ruby,sed,vi;

使用POSIX NFA引擎的程序主要有:mawk,Mortice Kern Systems’ utilities,GNU Emacs(使用时可以明确指定);

也有使用DFA/NFA混合的引擎:GNU awk,GNU grep/egrep,Tcl。

举例简单说明NFA与DFA工作的区别:

比如有字符串this is yansen’s blog,正则表达式为 /ya(msen|nsen|nsem)/ (不要在乎表达式怎么样,这里只是为了说明引擎间的工作区别)。 NFA工作方式如下,先在字符串中查找 y 然后匹配其后是否为 a ,如果是 a 则继续,查找其后是否为 m 如果不是则匹配其后是否为 n (此时淘汰msen选择支)。然后继续看其后是否依次为 s,e,接着测试是否为 n ,是 n 则匹配成功,不是则测试是否为 m 。为什么是 m ?因为 NFA 工作方式是以正则表达式为标准,反复测试字符串,这样同样一个字符串有可能被反复测试了很多次!

而DFA则不是如此,DFA会从 this 中 t 开始依次查找 y,定位到 y ,已知其后为a,则查看表达式是否有 a ,此处正好有a 。然后字符串a 后为n ,DFA依次测试表达式,此时 msen 不符合要求淘汰。nsen 和 nsem 符合要求,然后DFA依次检查字符串,检测到sen 中的 n 时只有nsen 分支符合,则匹配成功!

由此可以看出来,两种引擎的工作方式完全不同,一个(NFA)以表达式为主导,一个(DFA)以文本为主导!一般而论,DFA引擎则搜索更快一些!但是NFA以表达式为主导,反而更容易操纵,因此一般程序员更偏爱NFA引擎! 两种引擎各有所长,而真正的引用则取决与你的需要以及所使用的语言!

c语言程序员考试编程题(C语言程序编程题)

C语言编程题

1—————————-

#includestdio.h

main()

{

void input(int temp[],int t);

void sort(int y[],int s);

int search(int array[],int mtah);

int a[11],n=11,k,wei;

printf(“input a[10].\n”);

input(a,11);

sort(a,11);

printf(“input the math.\n”);

scanf(“%d”,k);

wei=search(a,10,k);

if(wei!=-1) printf(“%d zai %d shang.\n”,k,wei);

else

{for(k=0;k11;k++)

printf(“%d “,a[k]);}

}

void input(int temp[],int t)/*输入函数*/

{

int i;

for(i=0;it-1;i++)

scanf(“%d”,temp[i]);

}

void sort(int y[],int s)/*排序函数*/

{

int temp,i,j;

for(i=0;is-1;i++)

for(j=0;js-1-i;j++)

{

if(y[j]y[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;}

}

}

int search(int array[],int g,int mtah)/*查找函数*/

{

int d=0,i;

while(dg-1)

{

if(array[(d+g)/2]math) d=(d+g)/2;

else g=(d+g)/2;

}

if(array[d]!=math) retnue(d);

else

{

for(i=0;i10;i++)

if(array[i]math) break;

for(k=10;k=i;k–)

array[k]=array[k-1];

array[i]=math;

}

}

2————————————–

#includestio.h

main()

{

int add(int x,int y);

int sub(int x,int y);

int mul(int x,int y);

int a,b,he,cha,ji;

printf(“input a b.\n”):

scanf(“%d %d”,a,b);

he=add(a,b);

cha=sub(a,b);

ji=mnl(a,b);

printf(“he=%d,cha=%d,ji=%d.\n”,he,cha,ji);

}

int add(int x,int y)

{

retnue(x+y);

}

int sub(int x,int y)

{

retnue(x-y);

}

int mul(int x,int y)

{

retnue(x*y);

}

3————————————

#includestdio.h

main()

{

float a[10],temp,sum=0,;

int i,j,k;

printf(“input a[10].\n”);

for(i=0;i10;i++)

scanf(“%d”,a[i]);

for(i=0;i9;i++)

{

k=i;

for(j=i+1;j10;j++)/*选择排序*/

if(a[j]a[k]) k=j;

temp=a[k];a[k]=a[i];a[i]=temp;

}

for(i=1;i9;i++)

sum=sum=a[i];

sum=sum/8.0;

printf(“de fen %.2f.\n”,sum);

}

4—————————————–

#includestdio.h

struct stu

{

char xh[10];

char name[20];

float yy;

float jsj;

float sx;

float aver;

};

main()

{

int i,t,js=0,sum=0;

struct sut s[5];

FILE *pf;

float temp;

if((pf=fopen(“cj.dat”,”w”))==NULL)

{

printf(“can’t open file.\n”);

retnue;

}

for(i=0;i5;i++)

{

printf(“input s[%d].\n”,i);

scanf(“%s %s %f %f %f”,s[i].xh,s[i].name,s[i].yy,s[i].jsj,s[i].sx);

fwrite(s[i],sizeof(struct stu),1,pf);

}

fclose(fp);

for(i=0;i5;i++)

a[i].aver=(a[i].yy+a[i].jsj+s[i].sx)/3.0;

temp=a[0].aver;

for(i=1;i5;i++)

{\

printf(“%f\n”,s[i].aver);

if(s[i].aver=90) js++;

if(temps[i].aver) t=i;

sum=sum+a[i].aver;

}

printf(“%s %s %f %f %f %f”,a[t].xh,a[t].name,a[t].yy,a[t].jsj,a[t].sx,a[t].aver);

printf(“\naveger=%f.\n”,sum/5.0);

关于c语言程序员考试编程题和C语言程序编程题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月30日 13:31:35
下一篇 2024年3月30日 13:40:47

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    4100
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5800
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4500
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4500
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7500
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6500
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4700
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    5000
  • 学c语言编程,学c语言编程用什么软件

    编程开发必须要学C语言吗? 1、要学习。编程开发的学习内容主要包括c语言、python和c+语言。C语言作为一种简单灵活的高级编程语言,它是一个面向过程的语言,一般是作为计算机专业的基础入门语言课程。 2、C语言。对于刚接触编程的人来说,先学习C语言是非常重要的。C语言可以说是是计算机编程语言的鼻祖,其他的编程语言几乎全是由C语言变化衍生出来的。 3、不需要…

    2024年5月23日
    3500
  • c语言用string定义字符串,c语言中用string类型来处理字符串类型

    C++怎样定义定义字符串 1、第一是字符数组来表示字符串。用下面的语句声明:char a[10];C语言中字符数组与字符串的唯一区别是字符串末尾有一个结束符\0,而字符数组不需要。 2、在C中定义字符串有下列几种形式:字符串常量,char数组,char指针 字符串常量 即:位于一对双括号中的任何字符。双引号里的字符加上编译器自动提供的结束标志\0字符,作为 …

    2024年5月23日
    4500

发表回复

登录后才能评论



关注微信