二级C语言10上机(字符串)

合集下载

第六讲二级C字符串

第六讲二级C字符串
第六讲二级C字符串
给出以下定义:
char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'};
C
则正确的叙述为( )。
A) 数组X和数组Y等价 B) 数组x和数组Y的长度相同
C) 数组X的长度大于数组Y的长度
D) 数组X的长度小于数组Y的长度
字符串的结束标志:‘\0’。 注:C语言无字符串类型,字符串是存放在字符数
组中的。
第六讲二级C字符串
2. 用字符串来直接初始化字符数组 可直接把字符串写在花括号中来初始化字符数组. 如:char ch[9]={“student”};字符串和数组长度?
s t u d e n t \0
系统将双引号括起来的字符依次赋给字符数组的各个元 素, 并自动在末 尾补上字符串结束标志字符'\0'。
第六讲二级C字符串
(2)用puts函数输出字符串
函数原型:int puts(char * str); 调用格式:puts(str);
函数功能:将字符数组str中包含的字符串或str所指示的字 符串输出,同时将'\0'转换成换行符。 例:char ch[]="student";
puts(ch); puts("Hello"); 将字符数组中包含的字符串输出,然后再输出一个换行 符。因此,用puts()输出一行,不必另加换行符'\n'。 函数puts每次只能输出一个字符串,而printf可以输出几个 :printf("%s%s",str1,str2);

C语言二级考试上机答案全解

C语言二级考试上机答案全解

C语言二级考试上机答案全解1. 题目:以下哪个选项是C语言中的关键字?A. intB. INTC. IntegerD. int32_t答案:A解析:在C语言中,关键字是预定义的,用于表示特定的语言结构,如数据类型、控制语句等。

'int'是C语言中的基本数据类型关键字,用于声明整型变量。

'INT'和'Integer'不是C语言的关键字,而'int32_t'是C99标准中定义的类型,用于表示32位整型,但不是C 语言的关键字。

2. 题目:以下哪个函数用于计算两个整数的和?A. max(a, b)B. min(a, b)C. sum(a, b)D. pow(a, b)答案:C解析:在C语言的标准库中,并没有名为'sum'的函数。

然而,根据题目的语境,我们可以推断出'sum(a, b)'是用来计算两个整数a和b的和的函数。

'max(a, b)'和'min(a, b)'分别用于计算两个数中的最大值和最小值,而'pow(a, b)'用于计算a的b次方。

3. 题目:以下哪个选项是正确的C语言变量声明?A. int a = 5;B. int a = '5';C. int a = "5";D. int a = 5.0;答案:A解析:在C语言中,变量声明需要指定数据类型和变量名,并且可以初始化。

选项A中,'int a = 5;'是正确的声明,其中'int'是数据类型,'a'是变量名,'5'是整数值。

选项B中使用了单引号,这是用于字符常量的,而不是整数。

选项C使用了双引号,这是用于字符串常量的,不能用于整数变量的声明。

选项D中使用了浮点数,这与声明的整型变量类型不匹配。

4. 题目:以下哪个选项是C语言中正确的数组声明?A. int a[];B. int a[5];C. int a[5] = {1, 2, 3, 4, 5};D. All of the above答案:D解析:在C语言中,数组可以以多种方式声明。

二级C语言上机 总结

二级C语言上机 总结

本题是利用结构体存储学生记录并由实参ss返回。 第一处:实参ss是一个结构型指针变量,所以应填:STU。 第二处:该学生的各科成绩都乘以一个系数a,所以应填:score[i]。 第三处: 函数的调用, 由于函数定义时使用的指针结构型变量, 所以应填 : &std。
②填形参名的题目 这类题也是比较简单的,在子函数中从上往下看,如果看到变量没有声明,并且该变量 不是全局变量则该变量名就应该是形参。
二级 C 语言上机指导
一、填空题考点分析:
(一) 、文件函数的各个参数的意义
常考 的 有 fopen(), fseek(), fprintf(), fscanf(), fclose(),fwrite(),fread(), feof(),rewind(fp)在这里要明确每一个函数的参数的意义及使用方法。 文件结构体:(FILE) 缓冲文件系统为每个正在适用的文件都在内存开辟的文件信息区 该文件信息用系统定义的名为 FILE 的结构体描述 注意:文件结构体(FILE)包含在 stdio.h 头文件中 typedef struct { int _fd; int _cleft; int _mode; char *_next; char *_buff; }FILE; 例: FIEL *fp;
பைடு நூலகம்
(二) 、数据定义: 这类题集中在定义变量的类型,函数类型,形参的类型及形参名
1、 变量的类型中爱出的考题一般在指向文件的指针的定义方法:FILE *
如在第二套的填空中就是这种考法,要注意FILE必须大写,而且要注意指针,如果他给 的没有*则在定义时用户必须加上*。 如(第 2、14 套等)题: #include <stdio.h> void fun(char *s, int a, double f)

二级C语言上机编程题答题技巧

二级C语言上机编程题答题技巧

二级C语言上机编程题技巧一、技巧的原理首先使用这个技巧必须了解上机编程题的评分原理。

以上机题的第5套编程题为例。

二级C语言的上机试题是让我们自己编写某个小程序的子程序来实现题目中的功能。

那么考官是怎么样来检查我们编的程序是否正确呢?根据编程题下面这段程序我们就可以看出:在考生文件夹下存在一个名为in.dat的文件。

首先以只读的方式打开in.dat文件,以只写方式打开out.dat文件,若out.dat不存在则自动新建该文件。

然后使用fscanf 语句将其中的数据输入到变量a中,再将a当作实参调用我们需要编写的程序。

将结果用fprintf语句输入到out.dat文件中。

其中.dat为这个文件的扩展名(扩展名有可能被隐藏)。

所以考官不会直接检查我们的程序,只要检查out.dat里的数据是否正确就可以判断我们编的子程序是否正确。

因此程序编写题,我们可以只通过修改out.dat里面的答案而不去编写程序就可以拿到满分。

二、使用技巧的条件当然不是所有的编程题我们都能使用这个技巧的(不过90%的编程题都可以用这个方法)。

使用这个技巧必须具备两个条件:1、编程题是通过我上面讲的方法来检验,说白了就是我们的考生文件夹下面含有in.dat文件。

2、编程题需要实现的功能我们编程者可以自己想出来程序完成的答案。

例如本题:它让我们实现实型数据保留两位小数,并对第三位进行四舍五入。

那么这个功能我们若知道任一个实数都可以自己计算出结果,那么我们才能将正确答案写在out.dat文件里面。

若某程序让你编写子程序实现求取圆周率并精确到小数点后10位这个功能,那么我们就无法背出那么长的数字,因此也没有办法知道结果。

那么这种技巧就不能使用。

三、步骤确定了这个技巧可以使用后,我们就可以开始操作了。

一般分为以下几步:1、建立out.dat文件上面可以看到我们的考生文件夹中是没有out.dat这个文件的。

所以我们需要自己新建。

最好的方法就是打开编程题直接编译、、执行。

计算机二级C语言上机题型总结

计算机二级C语言上机题型总结

计算机二级C语言上机题型总结计算机二级C语言上机题型总结一)“******”问题1、将字符串中的前导*号全部删除,中间和后面的*号不删除。

void fun(char *a){char *p=a;while(*p= =’*’) p++;for( ; *p!=’\0’;p++,a++)*a=*p;*a=’\0’;}2、只删中间*int i;for(i=0;a[i]= =’*’;i++)for( ;h<p;h++)< p="">if(*h!=’*’)a[i++]=*h;for( ;*p;p++)a[i++]=*p;a[i]=’\0’;3、只删尾*while(*a!=’\0’)a++;a--;while(*a= =’*’)a--;*(a+1)=’\0’;4、只留前*int i , j=0;for(i=0;a=’*’;i++); j=i;for( ;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’\0’;5、只留中间*int i,j=0;for(i=h;ia[j]=’\0’;6、只留尾*char *t=a;for( ; t<=p;t++)if(*t!=’*’)*(a++)=*t;for( ;t!=’\0’;t++)*(a++)=*t;*a=’\0’;7、*个数>n个,删多余的*;*个数<=n个,不做任何处理。

int i=0, k=0;char *p,*t;p=t=a;while(*t= =’*’){k++;t++;}if(k>n){while(*p){a[i]=*(p+k-n);i++;p++}a[i]=’\0’;}(二)移动问题1、若一维数组中有n个整数,要求把下标从p到n-1(p<=n-1)的元素平移到数组前面。

int i,j,t;for(i=p;i<=n-1;i++){t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;}2、把下标从0到p(p<=n-1)的元素平移到数组最后。

计算机二级C语言第13讲(字符串)

计算机二级C语言第13讲(字符串)

字符串处理函数举例2:找三个字符串中的最大者
#include <stdio.h> #include <string.h> main() { char string[20],str[3][20]; int i; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf("\nThe largest string is:\n%s\n",string); }
全国计算机等级考试
二级C 二级C语言
好好考
()
第13讲 字符串与指针
• 字符数组和字符串 • 常用的字符串处理函数 • 指针与字符串 • 字符串指针作函数参数 • 字符指针变量与字符数组的区别 • 真题分析
第一节 字符数组和字符串
• 字符数组的定义形式: char 数组名[数组大小] 如: char c[10], ch[3][4];
I l o v e C h i n a ! \0
string[0] string[1] string[2] string[3] string[4] string[5] string[6] string[7] string[8] string[9] string[10] string[11] string[12] string[13]
运行情况: 输入:How are you? 输出:a=How b=are c=you? 输入:How are you? 输出:a=How

二级C语言上机编程题技巧(Clear)

二级C语言上机编程题技巧一、方法总结1、二级C语言上机编程题在二级上机考试中属于较难题型,因此很多同学都害怕通过不了。

综合往年的考试,结合考试大纲,每年考试的编程题都有一定的规律和方法,只要同学们认真熟练使用做题的方法,通过考试是没有问题的。

2、编程题做题方法一:使用C语言特有的函数做题(1)编程思想:使用C语言函数库中的做题,做题时必须注意包含对应的头文件(2)考题举例:题库中的第37题,要求将数字字符串转化为对应整数,例如“-1234”转化后为-1234。

做题时需要添加头文件#include "stdlib.h",然后在fun函数中写入程序return atol(p);其中atol(p)表示将p从字符串转化为长整型数。

最后编译,运行后输入测试数据后即可得到满分。

#include <stdio.h>#include <string.h>#include "stdlib.h"long fun ( char *p){return atol(p);}(3)方法总结:该类方法可以适用的题目较少,同学们了解即可。

3、编程题做题方法二:使用规律做题(1)编程思想:部分题目的答案是固定的,不会因为输入的数据改变而改变,因此这部分题目我们直接将答案记住即可,减少编程的麻烦。

(2)考题举例:题库中的70题,求cos(x)-x=0的一个实根。

做题时候在fun函数中输入return0.739085;后点击编译和运行即可,无需输入测试数据。

(补充:如果需要输入测试数据,程序在输出的黑屏上面会提示,不过一般是英文提示,所以同学们要格外小心)#include <math.h>#include <stdio.h>double fun(){return 0.739085;}(3)考题总结:该题为每年必考的题目,因此同学们要将答案熟记,以便大家能顺利通过考试。

C语言二级上机复习总结

与*号有关的操作9.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。

删除前导*号int j=0; char *p = a ;while(*p == '*') p++ ;while(*p) { a[j++] = *p ; p++; }/*while(*p)C语言中,如果P这个指针指向的值是真,则做,否则不做!!*/a[j]=0 ;填空:[N] t[i][j] t[j][i]改错:#define FU(m,n) ((m)/(n))return(value);10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。

形参p已指向字符串中最后的一个字母。

除尾部*号,其余*删除char *q=a; int j=0;while(*q && q<p) { if(*q != '*') a[j++] = *q ; q++ ; }while(*p) a[j++]=*p++; a[j]=0;填空:t[][N] i=0;i<n s改错:int fun(int a[],int m)else if(m > a[mid])11.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。

只删除中间*号int j=0; char *q=a;while(*q && q < h) a[j++] = *q++ ;while(*h && *p && h < p){ if(*h != '*') a[j++] = *h ; h++; }while(*p) a[j++] = *p++ ;a[j] = 0 ;填空:sum=0 t[i][i] 1改错:double r;while(fabs(m-n)>0.001)12.请编写函数fun,它的功能是:删除字符串中所有的*号。

计算机二级C语言上机题型总结

计算机二级C语言上机题型总结一)“******”问题1、将字符串中的前导*号全部删除,中间和后面的*号不删除。

void fun(char *a){char *p=a;while(*p= =’*’) p++;for( ; *p!=’\0’;p++,a++)*a=*p;*a=’\0’;}2、只删中间*int i;for(i=0;a[i]= =’*’;i++)for( ;h<p;h++)if(*h!=’*’)a[i++]=*h;for( ;*p;p++)a[i++]=*p;a[i]=’\0’;3、只删尾*while(*a!=’\0’)a++;a--;while(*a= =’*’)a--;*(a+1)=’\0’;4、只留前*int i , j=0;for(i=0;a=’*’;i++); j=i;for( ;a;i++)if(a!=’*’)a[j++]=a[i];a[j]=’\0’;5、只留中间*int i,j=0;for(i=h;i<n-e;i++) a[j++]=a[i];a[j]=’\0’;6、只留尾*char *t=a;for( ; t<=p;t++)if(*t!=’*’)*(a++)=*t;for( ;t!=’\0’;t++)*(a++)=*t;*a=’\0’;7、*个数>n个,删多余的*;*个数<=n个,不做任何处理。

int i=0, k=0;char *p,*t;p=t=a;while(*t= =’*’){k++;t++;}if(k>n){while(*p){a[i]=*(p+k-n);i++;p++}a[i]=’\0’;}(二)移动问题1、若一维数组中有n个整数,要求把下标从p到n-1(p<=n-1)的元素平移到数组前面。

int i,j,t;for(i=p;i<=n-1;i++){t=w[n-1];for(j=n-2;j>=0;j--)w[j+1]=w[j];w[0]=t;}2、把下标从0到p(p<=n-1)的元素平移到数组最后。

2021年3月全国计算机等级考试二级C语言历年真题和答案

2021年3月全国计算机等级考试二级C语言历年真题和答案2021年3月全国计算机等级考试《二级C语言》题库【历年真题+章节题库+模拟试题】目录•第一部分历年真题•全国计算机等级考试《二级C语言程序设计》真题及详解(一)•全国计算机等级考试《二级C语言程序设计》真题及详解(二)•全国计算机等级考试《二级C语言程序设计》真题及详解(三)•全国计算机等级考试《二级C语言程序设计》真题及详解(四)•全国计算机等级考试《二级C语言程序设计》真题及详解(五)•全国计算机等级考试《二级C语言程序设计》真题及详解(六)•第二部分章节题库•公共基础知识•第1章数据结构与算法•第2章程序设计基础•第3章软件工程基础•第4章数据库设计基础•C语言程序设计•选择题•第1章程序设计基本概念•第2章C程序设计的初步知识•第3章顺序结构•第4章选择结构•第5章循环结构•第6章字符型数据•第7章函数•第8章地址和指针•第9章数组•第10章字符串•第11章对函数的进一步讨论•第12章C语言中用户标识符的作用域和存储类•第13章编译预处理和动态存储分配•第14章结构体、共用体和用户定义类型•第15章位运算•第16章文件•上机操作题•一、程序填空题•二、程序修改题•三、程序设计题•第三部分模拟试题•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(一)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(二)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(三)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(四)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(五)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(六)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(七)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(八)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(九)•全国计算机等级考试《二级C语言程序设计》模拟试题及详解(十)•常见问题电子书常见问题1.电子书产品(电子书、题库、视频、全套等)能在几种设备上使用?如何使用?答:支持电脑(WIN10、WIN8、WIN7)、手机、平板等多端同步使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*****统计输入字符串的数字个数,例如:输入a1b2cdd5897def,数字个数为6******/
#include<stdio.h>
int num_len(char *s)
{
}
main()
{
char str[50];
int n=0;
gets(str);
n=num_len(str);
printf("the digit number is :%d\n",n);
}
/******判断一字符串是否为回文,若是回文返回值为1,否则返回值为0.************/ #include<stdio.h>
int is_Palindrome(char *s)
{
}
main()
{
char str[50];
int n;
gets(str);
n=is_Palindrome(str);
if(n)
printf("the string is palindrome");
else
printf("the string is not palindrome");
}
//从键盘上输入整数,以-1结束。

找出其中最小的数。

#include <stdio.h>
#define M 10
int getdata(int *s)
{
int i=0,x;
scanf("%d",&x);
while(x!=-1)
{
s[i]=x;
i++;
scanf("%d",&x);
}
return i;
}
int finddata(int *s,int n )
{
int i,max=s[0];
for(i=0;i<n;i++)
if(max>=s[i])
max=s[i];
return max;
}
main()
{
int s[M],sp,n;
n=getdata(s);
sp=finddata(s,n);
printf("\n%d\n",sp);
}
#include <stdio.h>
#include <string.h>
void fun(char(*a)[81],int num,char **max)
{
/* 以下代码仅供参考*/
int i,k=0,len, maxlen; /* k为a数组中最长串所在元素的下标,初始为0,maxlen为其串长*/
maxlen=strlen(a[k]);
for(i=1;i<num;i++)
{
/* 以下完成查找最长串*/
}
*max=a[k];
}
main()
{
char ss[10][81],*ps;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
fun(ss,n,&ps);
printf("\nmax=%s\n",ps); }。

相关文档
最新文档