C语言2016下半年第二次作业

合集下载

2016年c语言二级试题及答案

2016年c语言二级试题及答案

2016年c语言二级试题及答案2016年C语言二级试题及答案一、选择题1. 下列关于C语言的描述中,错误的是()。

A. C语言是一种高级语言B. C语言可以直接在操作系统上运行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义整型变量的关键字是()。

A. intB. floatC. charD. double答案:A3. 下列选项中,不是C语言标准库函数的是()。

A. printf()B. scanf()C. strcpy()D. strcat()答案:C二、填空题1. 在C语言中,一个整型变量占用的字节数是()。

答案:42. C语言中,用于定义字符常量的是()。

答案:单引号3. C语言中,用于定义浮点型变量的关键字是()。

答案:float三、简答题1. 请简述C语言中数组的定义方式。

答案:C语言中数组的定义方式是通过指定数组的类型、名称和大小来定义的。

例如,定义一个整型数组可以写作:`int array[10];`,其中`int`是数组的类型,`array`是数组的名称,`10`是数组的大小。

2. 请说明C语言中指针和数组的关系。

答案:在C语言中,指针和数组有密切的关系。

指针可以用于访问数组元素,数组名在大多数情况下可以作为指向数组第一个元素的指针使用。

例如,如果有一个数组`int arr[10];`,那么`arr`可以作为指向`arr[0]`的指针。

四、编程题1. 编写一个C语言程序,实现计算两个整数的和。

答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个整数的和是:%d\n", sum); return 0;}```2. 编写一个C语言程序,实现字符串的反转。

C语言 第2次作业

C语言 第2次作业

1 .C语言中规定函数的返回值的类型是由()。

A.return语句中的表达式类型所决定B.调用该函数时系统临时决定C.调用该函数时的主调用函数类型所决定D.在定义该函数时所指定的函数类型所决定参考答案:D2 .以下不能正确进行字符串赋初值的语句是____。

A.char str[5]="good“B.! char str[]=goodC.! char *str=goodD.! char str[5]={'g','o','o','d'}!参考答案:A3 .C语言中_______。

A.能使用do-while语句构成的循环B.do-while语句构成的循环必须用break语句才能退出C.do-while语句构成的循环,当while语句中的表达式为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值小于零时结束循环参考答案:A4 .以下选项中,与k=n++完全等价的表达式是_____。

A.k=n,n=n+1B.n=n+1,k=nC.k=++nD.k+=n+1参考答案:A5 .有定义语句:int b;char c[10]; ,则正确的输入语句是_____。

A.scanf("%d%s",&b,&c);B.scanf("%d%s",&b,c);C.scanf("%d%s",b,c);D.scanf("%d%s",b,&c);参考答案:B6 .若有定义:int aa[8];则以下表达式中不能代表数组元aa[1]的地址的是_____。

A.&aa[0]+1B.&aa[1]C.&aa[0]++D.aa+1参考答案:D7 .若i 、j 已定义为int 型,则以下程序段中语句printf( “%d ”,i*j); 的执行次数是_____。

计算机二级C语言练习题及答案

计算机二级C语言练习题及答案

计算机二级C语言练习题及答案2016计算机二级C语言练习题及答案计算机等级考试要取得好成绩平时一定要多加练习,提高做题技巧和速度。

下面是店铺为大家整理的2016计算机二级C语言练习题及答案,希望对大家有帮助!练习一1: 下列程序定义了n×n的二维数组,并在主函数中自动赋值。

请编写函数 fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成0。

答案:int fun(int a[][N]){int I,j;for(i=0;ifor(j=0;j<=I;j++)a[i][j]=0;}2: 下列程序定义了n×n的二维数组,并在主函数中赋值。

请编写函数fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

答案:double fun(int w[][N]){int I,j,k=0;double s=0.0;for(j=0;j{s+=w[0][j];k++;}for(j=0;j{s+=w[N-1][j];k++;}for(i=1;i<=N-2;i++){s+=w[i][0];k++;}for(i=1;i<=N-2;i++){s+=w[i][N-1];k++;}return s/=k;}3: 请编写一个函数void fun(int tt[m][n],int pp[n]),tt指向一个m 行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中。

二维数组中的数已在主函数中赋予。

答案:void fun(int tt[M][N], int pp[N]){int I,j,min;for(j=0;j{min=tt[0][j];for(i=0;i{if (tt[i][j]min=tt[i][j];}pp[j]=min;}}4: 请别写函数fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。

二维数组中的值在主函数中赋予。

C语言 课后作业题

C语言 课后作业题

C语言作业题【输出形式】用户在下一行显示输出结果【样例输入】3.47【样例输出】3【样例说明】与输入值3.47接近的整数为3和4,3.47比3.5小,舍掉小数部分,结果为3。

【评分标准】结果完全正确得20分,每个测试点4分。

提交程序名为:c0104.c。

当前编程题:第一次作业--- 计算空格换行个数5. 【问题描述】编写一程序,分别计算所输入的字符串中空格,换行符的个数。

【输入形式】输入可以是键盘上的任意字符。

【输出形式】分别输出空格,换行符的个数,输出的结果一行显示,数字之间以空格格开。

【输入样例】bb ss pp=fz【输出样例】2 1【样例说明】字符b与s之间有一个空格,s与p之间有一个空格,p与f之间有一个换行。

【评分标准】结果完全正确得20分,每个测试点4分。

提交程序名为:c0105.c。

当前编程题:第一次作业--- 整数组合(选做题)6. 【问题描述】假设unsigned short类型占16位,x、y、z都是short类型。

编写一程序,从键盘输入x,y 的值(十进制形式),然后将x的高8位作为z的高8位,y的高8位作为z的低8位,最后输出z的值(十进制形式)。

【输入形式】以十进制形式输入x和y的值,以空格隔开。

【输出形式】以十进制形式在新的一行上输出z值。

【输入样例】840 2177【输出样例】776【样例说明】840的二进制形式为:0000 0011 0100 10002177的二进制形式为:0000 1000 1000 0001将840的高8位作为结果的高8位,2177的高8位作为结果的低8位,所以结果为:0000 0011 0000 1000,即十进制形式为:776【评分标准】结果完全正确得20分,每个测试点4分。

提交程序名为:c0106.c。

当前编程题:第二次作业--- 数字排序1. 【问题描述】编写一个程序,将输入的三个数从小到大排列出来。

【输入形式】用户在第一行输入三个数字,每个数字用空格分开。

2016年3月份全国计算机等级考试二级C语言-题库(全)

2016年3月份全国计算机等级考试二级C语言-题库(全)

2016年3月份全国计算机等级考试二级C语言题库(全)一、选择题在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 BA)PAD图B)N-S图C)结构图D)数据流图(2)结构化程序设计主要强调的是 DA)程序的规模B)程序的效率C)程序设计语言的先进性D)程序易读性(3)为了使模块尽可能独立,要求 BA)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B)模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D)模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(4)需求分析阶段的任务是确定 DA)软件开发方法B)软件开发工具C)软件开发费用D)软件系统功能(5)算法的有穷性是指 AA)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是CA)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是 DA)e3,e1,e4,e2 B)e2,e4,e3,e1 C)e3,e4,e1,e2 D) 任意顺序(8)将E-R图转换到关系模式时,实体与联系都可以表示成 BA)属性B)关系C)键D)域(9)有三个关系R、S和T如下:RB C Da 0 k1b 1 n1SB C Df 3 h2a 0 k1n 2 x1TB C Da 0 k1由关系R和S通过运算得到关系T,则所使用的运算为 DA)并B)自然连接C)笛卡尔积D)交(10)下列有关数据库的描述,正确的是 DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C)关系中的每一列称为元组,一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字(11)以下叙述中正确的是 CA)用C程序实现的算法必须要有输入和输出操作B)用C程序实现的算法可以没有输出但必须要有输入C)用C程序实现的算法可以没有输入但必须要有输出D)用C程序实现的算法可以既没有输入也没有输出(12)下列可用于C语言用户标识符的一组是 DA)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF CaseD)2a, DO, sizeof(13)以下选项中可作为C语言合法常量的是 AA)-80 B)-080 C)-8e1.0 D)-80.0e(14)若有语句:char *line[5];,以下叙述中正确的是 CA) 定义line是一个数组,每个数组元素是一个基类型为char为指针变量B) 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C) 定义line是一个指针数组,语句中的*号称为间址运算符D) 定义line是一个指向字符型函数的指针(15)以下定义语句中正确的是 CA)int a=b=0; B)char A=65+1,b=′b′; C)float a=1,*b=&a,*c=&b;D)double a=0 0;b=1.1;(16)有以下程序段char ch; int k;ch=′a′;k=12;printf("%c,%d,",ch,ch,k); printf("k=%d \n",k);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 DA)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12D)a,97,k=12(17)有以下程序main(){ int i,s=1;for (i=1;i<50;i++)if(!(i%5)&&!(i%3)) s+=i;printf("%d\n",s);}A)409 B)277 C)1 D)91 (18)当变量c的值不为2、4、6时,值也为"真"的表达式是A)(c==2)||(c==4)||(c==6)B)(c>=2&& c<=6)||(c!=3)||(c!=5)C)(c>=2&&c<=6)&&!(c%2)D)(c>=2&& c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y){ case 0:a++; break;case 1:b++; break;}case 2:a++; b++; break;case 3:a++; b++;}printf("a=%d,b=%d\n",a,b);}A)a=1,b=0 B)a=2,b=2 C)a=1,b=1 D)a=2,b=1(21)下列程序的输出结果是#include "stdio.h"main(){ int i,a=0,b=0;for(i=1;i<10;i++){ if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b); }A)a=4,b=4 B)a=4,b=5 C)a=5,b=4 D)a=5,b=5(22)已知#int t=0;while (t=1){...}则以下叙述正确的是A)循环控制表达式的值为0B)循环控制表达式的值为1C)循环控制表达式不合法D)以上说法都不对(23)下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A)3 B)4 C)1 D)2(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}}; B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D)int x[][3]={1,2,3,4}; (25)有以下程序void ss(char *s,char t){ while(*s){ if(*s==t)*s=t-′a′+′A′;s++; } }main(){ char str1[100]="abcddfefdbd",c=′d′;ss(str1,c); printf("%s\n",str1);}程序运行后的输出结果是A)ABCDDEFEDBD B)abcDDfefDbD C)abcAAfefAbA D)Abcddfefdbd(26)有如下程序main(){ char ch[2][5]={"6937","8254"},*p[2];int i,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>′\0′;j+=2)s=10*s+p[i][j]-′0′;printf("%d\n",s);}该程序的输出结果是A)69825 B)63825 C)6385 D)693825(27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf("%s",s+1); C)gets(s); D)scanf("%s",s[1]); (28)以下叙述中错误的是A)在程序中凡是以"#"开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX 是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)设有以下说明语句typedef struct{ int n;char ch[8];} PER;则下面叙述中正确的是A)PER 是结构体变量名B)PER是结构体类型名C)typedef struct 是结构体类型D)struct 是结构体类型名(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)以下能正确定义一维数组的选项是A)int a[5]={0,1,2,3,4,5}; B)char a[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′}; C)char a={′A′,′B′,′C′}; D)int a[5]="0123";(32)有以下程序#include<string.h>main(){ char p[]={′a′, ′b′, ′c′},q[10]={ ′a′, ′b′, ′c′};printf("%d%d\n",strlen(p),strlen(q));}以下叙述中正确的是A) 在给p和q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为3B) 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3C) 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3D) 由于p和q数组中都没有字符串结束符,故长度都不能确定(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]:s[j];s[j]=t;}}main(){ char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){ int y;if(x==0||x==1) return(3);y=x *x-f(x-2);return y;}main(){ int z;z=f(3); printf("%d\n",z);}程序的运行结果是A)0 B)9 C)6 D)8(35)下面程序段的运行结果是char str[]="ABC",*p=str;printf("%d\n",*(p+3));A)67 B)0 C)字符′C′的地址D)字符′C′(36)若有以下定义:struct link{ int data;struct link *next;} a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构:指针p指向变量a,q指向变量c。

2016年03月全国计算机等级考试二级《C语言》真题及详解

2016年03月全国计算机等级考试二级《C语言》真题及详解

2016年03月全国计算机等级考试二级《C语言》真题(总分100, 考试时间90分钟)一、选择题1. 有以下定义:struct data{ int i;char c;double d;}x;以下叙述中错误的是______。

A x的内存地址与x. i的内存地址相同B struct data是一个类型名C 初始化时,可以对x的所有成员同时赋初值D 成员i、c和d占用的是同一个存储空间答案:D[解析] 变量i、c、d是结构体变量x中三个不同的成员,占用不同的存储空间。

2. 以下函数的功能是:计算a的n次方作为函数值返回。

double fun(double a,int n){ int i;double s=1.0;for(i=1;i<=n;i++)s=______;return s;}为实现上述功能,函数中下划线处应填入的是______。

A s*iB s*aC s+i*iD s+a*a答案:B[解析] s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。

3. 有以下程序:#include<stdio.h>#include<string.h>main( ){ char str[ ]={"Hello,Beijing"};printf("%d,%d\n",strlen(str),sizeof(str));}程序的运行结果是______。

A 13,13B 13,14C 13,15D 14,15答案:B[解析] strlen返回字符串的长度,不包含字符串末尾的结束字符"\0",结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个"\0",所以结果为13+1=14。

4. 若有说明:typedef struct{int a;char c;}w;,则以下叙述正确的是______。

A 编译后系统为w分配5个字节B 编译后系统为w分配6个字节答案:D[解析] w是一个自定义类型,不是变量,故编译后系统不为w分配存储空间。

2016最新二级C语言考试题库及答案(程序设计专项练习 精华版)

2016最新二级C语言考试题库及答案(程序设计专项练习  精华版)

程序设计题(共15题)1、在考生文件夹下,要求程序PROG .C 的功能是: 将字符串中所有的大写字母转换为小写,其它字符不变(不使用转换函数)。

例如,当字符串为"This Is a c Program" 输出:"this is a c program"#include <stdio.h> void fun(char str1[]) {/************end************/}void main() {void NONO( );//函数声明 char str1[80];printf("Please input a string:\n"); gets(str1); fun(str1);printf("Result is: %s\n",str1); NONO( ); }void NONO( ) { FILE *fr,*fw; int i;char s[80];fr=fopen("PROGIN.DAT","r"); fw=fopen("PROGOUT.DAT","w"); for(i=1;i<=2;i++) { fgets(s,80,fr); fun(s);fprintf(fw,"%s",s);} fclose(fr); fclose(fw); } 2、在考生文件夹下,要求程序PROG.C 的功能是: 求[1,1000]之间既不能被7整除也不能被5整除的整数之和,将结果存入变量s 中。

#include "stdio.h" #include "math.h" #include "stdlib.h" void main() {void NONO( int y);//函数声明 int s; int i;/************end************/ printf("s=%d\n",s); NONO(s); }void NONO( int y) { FILE *f;f=fopen("PROGOUT.DAT","w"); fprintf(f,"The Result is :%d\n",y); fclose(f); }3、在考生文件夹下,要求程序PROG .C 的功能是: 统计字符串中元音字母’a ’、’e ’、’i ’、’o ’、’u ’的个数并输出。

C语言2016下半年第二次作业资料

C语言2016下半年第二次作业资料

<C语言程序设计>第2次作业一、单项选择题1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a;则值为5的表达式是( B )。

A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为( B )fun( ( a, b, c, d ), ( m, n ), (f, g ) );A)1 B)3 C)4 D)23.函数形式正确的是( D )。

A) double myfun( int x, int y) B) int myfun( int x, y){ m=x+y; return m; } { int m; }C) int myfun( int x, int y) D) int myfun( int x, int y){ int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; }4.不正确的字符串赋值或赋初值方式是( C )。

A)char *str; str=”string”; B)char str[7]={‘s’, ‘t’, ‘r’, ‘i’, ‘n’, ‘g’}C) char str[10]; str=”string”;D)char str[]=”string”; str2[]=”12345678”; strcpy(str2, str1);5.以下程序的输出结果是( B )。

#include <stdio.h>main(){ char str[]="SSSWLIA", c;int k;for (k=2; (c=str[k])!='\0'; k++) {switch (c) {case 'I': ++k; break;case 'L': continue;default: putchar(c); continue;}}putchar('*');}A)SSW* B)SW* C)SW*A D)SW6.以下程序的输出结果是( B )。

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

<C语言程序设计>第2次作业一、单项选择题1.若有以下定义:int a[]={3, 4, 5, 6, 7, 8, 9, 10, 11}, *p=a;则值为5的表达式是( B )。

A)p+=5, *(p+1) B)p+=1, * ++p C)p+=4, *p++ D)p+=1, ++ *p 2.下面函数调用语句含有实参的个数为( B )fun( ( a, b, c, d ), ( m, n ), (f, g ) );A)1 B)3 C)4 D)23.函数形式正确的是( D )。

A) double myfun( int x, int y) B) int myfun( int x, y){ m=x+y; return m; } { int m; }C) int myfun( int x, int y) D) int myfun( int x, int y){ int x, y; double m; { int m; m=x+y; return m; } m=x+y; return m; }4.不正确的字符串赋值或赋初值方式是( C )。

A)char *str; str=”string”; B)char str[7]={…s‟, …t‟, …r‟, …i‟, …n‟, …g‟}C) char str[10]; str=”string”;D)char str[]=”string”; str2[]=”12345678”; strcpy(str2, str1);5.以下程序的输出结果是( B )。

#include <stdio.h>main(){ char str[]="SSSWLIA", c;int k;for (k=2; (c=str[k])!='\0'; k++) {switch (c) {case 'I': ++k; break;case 'L': continue;default: putchar(c); continue;}}putchar('*');}A)SSW* B)SW* C)SW*A D)SW6.以下程序的输出结果是( B )。

#include <stdio.h>int w=3;fun( int k){if ( k==0) return w;return ( fun(k -1 )*k);}main(){ int w=10;printf("%d\n", fun(5)*w);}A)360 B)3600 C)1080 D)12007. 以下程序的输出结果是( D )。

#include <stdio.h>int w=3;f( int a){ int b=0; static int c=3;b++; c++;return ( a+b+c);}main(){ int a=2, i;for (i=0; i<3; i++)printf("%d ", f(a));}A)7 7 7 B)7 10 13 C)7 9 11 D)7 8 9 8.以下程序的输出结果是( D )。

#include <stdio.h>main(){ int a[]={1,2,3,4,5,6}, *p;p=a; *(p+3)+=2;printf("%d, %d \n ", *p, *(p+3));}A)0, 5 B)1, 5 C)0, 6 D)1, 69.以下程序的输出结果是( B )。

#include <stdio.h>#define PT 5.5#define S(x) PT*x*xmain(){ int a=1, b=2;printf("%4.1f\n ", S(a+b));}A)49.5 B)9.5 C)12.5 D)33.510.下面程序段的输出结果是( C )。

#include <stdio.h>#define LETTER 1main(){ char str[20]="Language", c;int i=0;while (( c=str[i])!='\0'){ i++;# if (LETTER)if (c>='a'&& c<='z') c=c-32;#elseif (c>='A'&& c<='Z') c=c+32;#endifprintf("%c", c);}}A)Language B)language C)LANGUAGE D)lANGUAGE11.若有说明:char *s[]={“FORTRAN”, “BASIC”,”PASCAL”,”JA V A”,”C”}; 则表达式*s[1]>*s[3]比较的是( C )。

A)字符F和字符P B)字符串BASIC和字符串JA V AC)字符B和字符J D)字符串FORTRAN和字符串PASCAL12.如下程序的输出结果是( B )。

#include <stdio.h>main(){ char a[20]="chinese" ; char *p=a;for (; p<a+7; p+=2) putchar(*p);}A)chinese B)ciee C)chine D)cie13. 若有定义: int a[2][3];则对a数组的第i行第j列(假设i,j已正确说明并赋值)元素值的正确引用为( A )。

A)*(*(a+i)+j) B)(a+i)[j] C)*(a+i+j) D)*(a+i)+j14. 若有以下定义和语句,则对a数组元素的正确引用为( C )。

int a[2][3],(*p)[3];p=a;A)(p+1)[0] B)*(*(p+2)+1) C)*(p[1]+1) D)p[1]+215.若以下main函数经过编译、连接后得到的可执行文件名为echo.exe,若希望在系统的命令状态下输入某一命令行后得到的输出是chian tianjin,则命令行的内容应是( B )。

A)chian tianjin B)echo chian tianjinC)echo D)echochian tianjin chinatianjin16.以下对结构体变量stu中成员age的非法引用是(B )。

struct student{ int age; int num; } stu, *p;p=&stu;A)stu.age B)student.age C)p->age D)(*p).age17.已知学生记录描述为:struct DATE{ int year;int month;int day;};struct student{ int no; /*学号*/char name[10]; /*姓名*/char sex; /*性别*/struct DA TE birth;};struct student s;设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是(D )。

A)year=1984; B)birth.year=1984;month=11; birth.month=11;day=11; birth.day=11;C)s.year=1984; D)s.birth.year=1984;s.month=11; s. birth.month=11;s.day=11; s.birth.day=11;18.若有以下定义的语句:union data{ int i;char c;float f;}a;int n;则以下语句正确的是( A )。

A)a.i=5 B)a={2,‟a‟,1.2} C)printf(“%d”,a) D)n=a19. 表达式a<b||~c&d的运算顺序是( D )。

A)~,&,<,|| B)~,||,&,< C)~,&,||,< D)~,<,&, || 20.若执行fopen函数时发生错误,则函数的返回值为( B )。

A)地址值B)0 C)1 D)EOF二、填空题(本大题共11小题,每空2分,共30分)1.int arr[20]; 则arr[i]的地址可表示为&arr[i], arr+i 。

2.函数swap(int x, int y)可完成对x和y值的交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为a[0]=1 a[1]=2 ,原因是实参和形参是值传递。

a[0]=1; a[1]=2; swap(a[0],a[1]);3.若有定义 int a [3][4]={{1,2}, {0},{ 4,6,78,10}}; 则初始化后a[1][2]得到的初值是 0 ,a[2][1]得到的初值是 6 。

4.函数delete_string( char s[ ],char c)将字符串s中所出现的与变量c相同的字符删除,请填空。

delete_string(char *s, char ch) /*定义外部函delete_string*/{int i,j;for (i=j=0;*(s+i)!='\0';i++)if (*(s+i)!=ch) *(s+j++)=*(s+i) ;*(s+j)='\0';}5.下面程序段将输出 computer,请填空。

int i, j=0;char c[ ]=”it’s a computer”;for (i=0; i<=7 ;i++){ j=i+7 ; printf(“%c”,c[j];)6. 如下程序段的输出结果是 123 。

#include <stdio.h>main(){ char str[]="1a2b3c" ; int i;for (i=0; str[i]!='\0';i++)if (str[i]>='0'&&str[i]<='9') printf("%c",str[i]);}7.如下程序段的输出结果是 EFGH IJKL 。

#include <stdio.h>main(){ char str[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for (k=1; k<3;k++)printf("%s\n",str[k]);}8.如下程序段的输出结果是 n1=1, n2=6 。

相关文档
最新文档