中国石油大学(华东)C语言在线测评答案-第12章结构体和共用体(2013级亲测正确)

合集下载

C语言(结构体与共用体)习题与答案

C语言(结构体与共用体)习题与答案
A.int strcmp4(char *s,char *t)
{ for ( ; *s==*t; s++, t++ )
if (!*s) return 0 ;
return (*t-*s) ;
}
B.int strcmp2(char *s,char *t)
{ for ( ; *s++=*t++; )
if (!*s) return 0 ;
1、指针的含义是()。
A.名
B.一个标志
C.地址
D.值
正确答案:C
2、若已定义a为int型变量,则下面的语句中正确的是()。
A.int *p=*a;
B.int *p=&a;
C.int *p=a;
D.int p=&a;
正确答案:B
3、若有定义:int x,*p;则以下正确的赋值表达式是()。
A.*p=&x
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf("%4d,%4d,%4d\n",a,b,c);
}
A.5,-2,-7
B.5,2,3
C.-5,-12,7
D.-5,-12,-7
正确答案:D
11、以下程序运行的结果是()。
#include<stdio.h>
void main()
D.char *s="china";等价于char *s; s="china" ;
正确答案:D
15、函数strcmp(char *s,char *t)功能是()。

《C语言程序设计》(第2版)苏小红-13章 12

《C语言程序设计》(第2版)苏小红-13章 12
作用
2021/7/31
40/60
struct sample {
short i; char ch; float f; };
union sample {
short i; char ch; float f; };
2021/7/31
共用体
【例12.8】
printf("%d\n", sizeof(struct sample));
Before function call:1999/04/23 After function call:2000/05/22
指针作函数形参 实参必须为地址值
2021/7/31
33/60
struct date
{
int year; int month;
结构体变量
int day; };
作函数返回值
struct date Func(struct date p)
2021/7/31
【例12.3】利用 结构体数组计 算每个学生的 平均分
25/60
结构体指针的定义和初始化
如何定义指向结构体变量的指针?
pt STUDENT stu1; STUDENT *pt; pt = &stu1;
等价于
STUDENT *pt = &stu1;
stu1 成员1 成员2 成员3 成员4
i ch
f
8个字节
printf("%d\n", sizeof(union sample));
0x0037b00
cfih
4个字节 41/60
共用体
sizeof(union number)取决于占空间最多的那个成员 变量
同一内存单元在每一瞬时只能存放其中一种类型的成员 起作用的成员是最后一次存放的成员,不能作为函数参数 不能进行比较操作,只能对第一个成员初始化

石油大学华东C语言在线考试

石油大学华东C语言在线考试

窗体顶端设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为()∙A)strcpy(str1,str2);∙B)strcpy(str1,“China”);∙C)strcat(str1,“China”)∙D)strcat(“Beijing”,str2);窗体顶端2(2.0分)下列变量的定义及赋值正确的是()∙A)int i=0;j;∙B)char c=”A”;∙C)double x,y,z;x=y=z=100;∙D)float a=b=100;窗体顶端3(2.0分)设有定义语句:char str[][20]={"Hello","Beijing"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是()∙B)5∙C)7∙D)20窗体顶端4(2.0分)设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是()∙A)1,1,1∙B)1,2,0∙C)0,1,1∙D)0,2,0窗体顶端5(2.0分)下列程序段的输出结果是()x=9; while(x>7) {printf(“*”);x--;}∙A)****∙B)***∙C)**∙D)窗体顶端6(2.0分)设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是()∙A)5 11∙B)1 9∙C)5 9∙D)有错误窗体顶端7(2.0分)? ?设有语句:float x=1,y; y=x 3/2; 则y的值是()∙A)1∙B)2∙C)2.0∙D)2.5窗体顶端8(2.0分)? ?若有如下语句: int *p1,*p2; 则其中int所指的是()∙A)p1的类型∙B)*p1和*p2的类型∙C)p2的类型∙D)p1和p2所能指向变量的类型窗体顶端9(2.0分)设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为()∙A)30∙B)20∙C)10∙D)40窗体顶端10(2.0分)? ?设有如下定义和执行语句,其输出结果为()int a=3,b=3; a = --b + 1;printf(“%d %d”,a,b);∙A)3 2∙B)4 2∙C)2 2∙D)窗体顶端11(2.0分)C语言中基本数据类型有()∙A)整型、实型、逻辑型∙B)整型、字符型、逻辑型∙C)整型、实型、字符型∙D)整型、实型、字符型、逻辑型窗体顶端12(2.0分)表示x≤0或x≥1的正确的表达式是()∙A)x>=1||x<=0∙B)x>1 || x<=0∙C)x>=1 or x<=0∙D)x>=1 || x<0窗体顶端13(2.0分)若有定义:int a[5];则a数组中首元素的地址可以表示为()∙A)&a∙B)∙C)a∙D)&a[1]窗体顶端14(2.0分)结构化程序设计的三种基本结构是()∙A)顺序结构、选择结构、循环结构∙B)if、switch、break∙C)for、while、do-while∙D)if、for、continue窗体顶端15(2.0分)若二维数组a有m列,则a[I][j]元素前的数组元素个数为()∙A)j*m i∙B)i*m j∙C)i*m j-113∙D)i*m j 1窗体顶端16(2.0分)能将高级语言编写的源程序转换为目标程序的软件是()∙A)汇编程序∙B)编辑程序∙C)解释程序∙D)编译程序窗体顶端17(2.0分)计算表达式(x=4*5,x*5),x 25的值是()∙A)20∙B)125∙C)100∙D)45窗体顶端18(2.0分)如有以下变量定义:int a=5,b=6,c=12;那么下列表达式结果为真的是()∙A)a-b∙B)a>b∙C)b/c∙D)c%b19(2.0分)从变量的作用域来分,可分为全局变量和局部变量,形参是()∙A)局部变量∙B)全局变量∙C)静态变量∙D)动态变量窗体顶端20(2.0分)初始化多维数组的语句中,可以默认的是()∙A)最后一个下标界∙B)第1个下标界∙C)第2个下标界∙D)以上都不对窗体顶端21(5.0)#include <stdio.h>?#define S(x) x*x?? void main()?{ int a,k=3,m=1;??a=S(k+m);?? ?printf("%d",a);? }字体字号7点击保存窗体顶端22(5.0)#include <stdio.h>?void main()?{ int x=12,y=0;? if(x>=0)?? { if(x>0) y=10;}?? else y=-10;?? printf(“y=%d\n”,y);?}字体字号点击保存窗体顶端23(5.0)#include <stdio.h>?void main()?{ int a=4,x=3,y=2,z=1;?printf("%d\n",(a<x ? a : z<y ? z : x));?}字体字号1点击保存窗体顶端24(5.0)#include <stdio.h>?int fun(int a, int b)?{ if(a>b) return(a);?else return(b);}?void main()?{ int x=3, y=8, z=6, r;?r=fun(fun(x,y), 2*z);?printf("%d\n", r);?}字体12点击保存窗体顶端25(5.0)#include <stdio.h>?void main()?{ int k=1;?? switch(k)?? { case 0: printf("A");?break;? ? case 1: printf("B");?? ? case 2: printf("I");?? ? case 3: printf("G");?break;?? ? default: printf("E");?? ? }?}字体字号BIG点击保存窗体顶端26(5.0)#include <stdio.h>?int fun(char *s1,char *s2)? { int i=0;? while(s1[i]==s2[i] && s2[i]!='\0') i++;? return (s1[i]=='\0' && s2[i]=='\0');?? ?}?void main()?? ? { char p[10]= "abcdef", q[10]= "ABCDEF";?? ? ? printf("%d\n",fun(p,q));? ? ?}字体字号点击保存窗体顶端27(10.0)写一个判断素数的函数。

中国石油大学华东2013-2014第一学期c语言期末考试答案

中国石油大学华东2013-2014第一学期c语言期末考试答案

《计算机程序设计C(2-1)》期末考试试卷专业班级姓名学号开课系室计算机应用技术系考试日期 2014年 1月10日一、程序阅读题(每空2分,共20分)1.若想通过以下输入语句给a赋值1,给b赋值2,则输入数据的形式应该是【1】。

scanf("%d,%d",&a,&b);2.如果a和b的值分别为20和10,下列语句printf("%d+%d=%d",a,b,a+b);输出到屏幕上的结果是【2】。

3.下面程序的输出结果为【3】。

#include <stdio.h>int main(){int x = 10,y = 3;printf("%d\n",x/y);return 0;}4.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为【4】。

for(i = 0,j = 10; i <= j; i ++,j --)k =i + j;5. 水仙花数是指一个三位数的各位数字的立方和是这个数本身,请阅读下面程序并完成填空。

#include <stdio.h>int fun(int n){int i,j,k,m;m = n;【5】;while(m){【6】;m = m / 10;k = k + j * j * j;}if(k == n)【7】;elsereturn 0;}int main(){int i;for(i = 100; i < 1000; i ++){1if( 【8】== 1){printf("%d is ok!\n" ,i);}}return 0;}6. 程序功能是:从键盘输入一行字符,将其中的所有数字字符转换为按先后顺序排列的一个整数。

例如,输入的一行字符为“a2b0D04”,输入结果为整数2004,请补充完整程序。

#include <stdio.h>int main(){int n = 0;char ch;ch = getchar();while(ch != '\n'){if( 【9】){n = n * 10 + ch - '0';}ch = getchar();}printf("value = %d\n",n);return 0;}7.有以下程序#include <stdio.h>int sub(int n){return (n / 10 + n % 10);}int main(){int x,y;scanf("%d",&x);y = sub(sub(sub(x)));printf("%d\n",y);return 0;}若运行时输入:1234<回车>,程序的输出结果是【10】。

中国石油大学(华东)C语言在线测评答案第1、2、3、4章(2013级亲测正确)

中国石油大学(华东)C语言在线测评答案第1、2、3、4章(2013级亲测正确)

【验证型】1.2 Welcome to Beijing.#include <stdio.h>int main(){printf("Welcome\nto\nBeijing.\n");return 0;}【验证型】1.3 练习最简单的printf和scanf输入:整型变量x的值。

输出:输出整型变量x对应的十进制、八进制和十六进制形式。

认真观察-1的八进制和十六进制输出,请想想是为什么。

x=-1,x=37777777777,x=ffffffff↵#include <stdio.h>int main(){int x;scanf("%d",&x);printf("x=%d,x=%o,x=%x\n",x,x,x);return 0;}【设计型】1.4 练习两个整数之间的运算输入:接受两个整数,每个整数之间使用空格分隔。

例如输入格式为:123 444 输出:分别输出进行+、-、*、/、*之后的运行结果。

#include<stdio.h>int main(){int a,b;scanf("%d %d",&a,&b);printf("%d+%d=%d\n",a,b,a+b);printf("%d-%d=%d\n",a,b,a-b);printf("%d*%d=%d\n",a,b,a*b);printf("%d/%d=%d\n",a,b,a/b);printf("%d%%%d=%d\n",a,b,a%b);return 0;}#include <stdio.h>int main(){int a,q,w,e,r,t;scanf("%d",&a);q=a/50;w=a%50/10;e=a%50%10/5;r=a%50%10%5/2;t=a%50%10%5%2;printf("%d\n%d\n%d\n%d\n%d\n",q,w,e,r,t);return 0;}【设计型】3.3 照猫画猫:计算圆柱的侧面积及体积如果已知圆柱的底面半径 r ,以及高 h ,则可计算出圆柱的侧面积s=2πrh ,体积v=π r 2 h 。

中国石油大学(华东)大一C语言答案

中国石油大学(华东)大一C语言答案

大一6.1 谁能出线背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。

按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。

输入:按顺序给出一个小组10个人的最后得分(int)。

输出:能够出线的学生序号(0~9)。

#include<stdio.h>void main(){int a[10];int b=0,i,n,max=0;for(i=0;i<10;i++){scanf("%d",&a[i]);}for(i=0;i<10;i++){if(a[i]>max){max=a[i];}}for(i=0;i<10;i++){if(a[i]==max){printf("%d\n",i);}}}6.2 统计素数的个数求出 2 到m 之间( 含m,m<=1000) 所有素数并放在数组 a 中。

输入:正整数m输出:从小到大的所有素数,及个数(素数输出的时候用%4d来控制)如:输入:10输出:2 3 5 74#include<stdio.h>int main(){int x,n,t[100],j,i=0;scanf("%d",&n);for(x=2;x<=n;x++){for(j=2;j<=x;j++){if(x%j==0)break;}if(x==j){ t[i]=x;printf("%4d",t[i]);i++;}}printf("\n%d\n",i);return 0;}6.3 冒泡法排序冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。

即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。

中国石油大学华东c语言期末考试题及答案

中国石油大学华东c语言期末考试题及答案

中国石油大学华东c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中变量的描述,错误的是()。

A. 变量必须先定义后使用B. 变量的类型必须明确C. 变量名可以是任意字符D. 变量的类型决定了变量的存储空间答案:C2. 在C语言中,下列哪个关键字用于定义函数?()A. intB. voidC. returnD. main答案:B3. 下列哪个选项是正确的C语言注释方式?()A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释 */答案:B4. C语言中,下列哪个运算符用于比较两个值是否相等?()A. ==B. !=C. >D. <答案:A5. 在C语言中,下列哪个选项是正确的字符串定义方式?()A. char str[] = "Hello";B. char str = "Hello";C. char str[] = {"Hello"};D. char str = {"Hello"};答案:A6. 下列哪个选项是C语言中的合法整型常量?()A. 123B. 0x1AC. 0123D. All of the above答案:D7. C语言中,下列哪个选项用于定义一个指向整型的指针?()A. int *p;B. int p;C. *int p;D. int *p = 0;答案:A8. 下列哪个选项是正确的C语言数组定义方式?()A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. All of the above答案:D9. 在C语言中,下列哪个选项是正确的文件包含指令?()A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:D10. 下列哪个选项是C语言中正确的条件语句?()A. if (x > 0)B. if x > 0C. if (x > 0) {D. if (x > 0) then答案:C二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量并初始化为10的语句是:________。

C语言程序设计结构体与共用体

C语言程序设计结构体与共用体

C语⾔程序设计结构体与共⽤体⼀、选择题1、定义结构类型时,下列叙述正确的是()A、系统会按成员⼤⼩分配每个空间B、系统会按最⼤成员⼤⼩分配空间C、系统不会分配空间D、以上说法均不正确2、已知结构类型变量x的初始化值为{“20”,30,40,35.5},请问合适的结构定义是()A、 Struct s{int no;int x,y,z};B、 Struct s{char no[2];int x,y,z};C、 Struct s{int no;float x,y,z};D、Struct s{char no[2];float x,y,z};3、若程序中有定义struct abc{int x;char y;};abc s1,s2;则会发⽣的情况是()A、编译时会有错误B、链接时会有错误C、运⾏时会有错误D、程序没有错误4、已知学⽣记录描述为struct student{int no;char name[20];char set;struct{int year;int month;int day;}birth;};struct student s;设变量s中的“⽣⽇”应是“1984年11⽉11⽇”,下列对⽣⽇的正确赋值⽅式是( ). 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;5、当说明⼀个结构体变量时系统分配给它的内存是( ).A)各成员所需内存量的总和 B)结构中第⼀个成员所需内存量C)成员中占内存量最⼤者所需的容量 D)结构中最后⼀个成员所需内存量6、以下对结构体类型变量的定义中不正确的是( ).A)#define STUDENT struct student B)struct studentSTUDENT {int num;{int num; float age;float age; }std1;}std1;C)struct D)struct{int num; int num;float age; float age;}std1; }student;struct student std1;7、设有以下说明语句struct stu{int a;float b;}stutype;则下⾯的叙述不正确的是( ).A)struct是结构体类型的关键字B)struct stu是⽤户定义的结构体类型C)stutype是⽤户定义的结构体类型名D)a和b都是结构体成员名8、C语⾔结构体类型变量在程序执⾏期间( )..A)所有成员⼀直驻留在内存中B)只有⼀个成员驻留在内存中C)部分成员驻留在内存中D)没有成员驻留在内存中9、在16位IBM-PC机上使⽤C语⾔,若有如下定义:struct data{int i;char ch;则结构变量b占⽤内存的字节数是( ).A)1 B)2 C)3 D)410、以下程序的运⾏结果是( ).#include “stdio.h”main(){struct data{int year,month,day;}today;printf(“%d\n”,sizeof(struct data));}A)6 B)8 C)10 D)1211、若有以下定义和语句;struct student{int age;int num ;};struct student stu [3]={{1001,20 },{1002,19},{1003,21}};main(){struct student *p;p=stu;…..}则以下不正确的引⽤是( )。

中国石油大学C语言在线作业参考

中国石油大学C语言在线作业参考

中国石油大学C语言在线作业参考一、单项选择题答题要求:每题只有一个正确的选项。

1(5.0分)在下面几组数据类型中, 全为最常用的基本数据类型的是()•A)整型实型字符型••B)整型数组指针••C)数组结构体共用体••D)指针逻辑型空类型•参考答案: A收起解析解析:无2(5.0分)在C语言中,十进制数47可等价地表示为()•A)••B)02f••C)57••D)057•参考答案: D收起解析解析:无3(5.0分)执行下面程序:main(){int x=1,y=1,z=1;x=x++ +y++ +z++;printf("%d, %d , %d",x,++y,z++);输出的结果为()•A)4,3,2••B)3,3,2••C)3,3,3••D)3,2,2•参考答案: A收起解析解析:无4(5.0分)在下列描述中,正确的一条是()•A)if(表达式)语句中,表达式的类型只限于逻辑表达式••B)语句“goto 12;”是合法的••C)for(;;)语句相当于while(1)语句••D)break语句可用于程序的任何地方,以终止程序的执行•参考答案: C收起解析解析:无5(5.0分)语句:printf("%d",(a=2)&&(b=-2));的输出结果是()•A)无输出••B)结果不确定••C)1••D)2•参考答案: C收起解析解析:无6(5.0分)有如下定义:long m;char c;float x;double y;则表达式c m*x/y的值的类型是()•A)long••B)char••C)float••D)double•参考答案: D收起解析解析:无7(5.0分)在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()•A)地址传递••B)由实参传给形参,再由形参返回实参••C)值传递••D)传递方式由用户指定•参考答案: C收起解析解析:无8(5.0分)有以下函数定义:void fun( int n ,double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是()•A)fun( int y ,double m );••B)k=fun( 10 ,12.5 );••C)fun(x ,n);••D)void fun( 10 ,12.5 );•参考答案: C收起解析解析:无9(5.0分)在计算机中,C语言是属于()•A)机器语言••B)高级语言••C)汇编语言••D)自然语言•参考答案: B收起解析解析:无10(5.0分)在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()•A)1••B)2••C)3••D)4•参考答案: B收起解析解析:无11(5.0分)执行int j,i=1; j=-i ; 后j的值是()•A)-1••B)-2••C)1••D)2•参考答案: A收起解析解析:无12(5.0分)在“while(!a)”中,其中“!a”与表达式()等价。

C语言全部章节习题集(参考答案)

C语言全部章节习题集(参考答案)

第一章 C语言概述一、选择题:1、一个C程序的执行是从( A )。

A本程序的main函数开始,到main函数结束B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C本程序的main函数开始,到本程序文件的最后一个函数结束D本程序文件的第一个函数开始,到本程序main函数结束2、在 C 语言中,每个语句必须以( D )结束。

A. 回车符B. 冒号C. 逗号D. 分号3、C 语言规定:在一个源程序中,main函数的位置( C )。

A. 必须在最开始B. 必须在系统调用的库函数的后面C. 可以任意D. 必须在最后4、一个C 语言程序是由( B )。

A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成5、下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件二、填空题:1、C 语言只有 32 个关键字和 9 种控制语句。

2、每个源程序有且只有一个 main 函数,系统总是从该函数开始执行C语言程序。

3、C 语言程序的注释可以出现在程序中的任何地方,它总是以 \* 符号作为开始标记,以 */ 符号作为结束标记。

4、C 语言中,输入操作是由库函数 scanf 完成的,输出操作是由库函数 printf 完成的。

5、系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。

6、C 语言的标识符只能由字母、数字和下划线三种字符组成。

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的 C 语言浮点型常量是( C )。

中国石油大学华东现代远程教育C语言

中国石油大学华东现代远程教育C语言

自测1试题1.第1题单选题已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a ,b);的结果是A、99, bB、c, 98C、99, 98D、c, b标准答案:B您的答案:B题目分数:5此题得分:5.0批注:2.第2题单选题下述语句的输出为int m=-1;printf(“%d,%u,%o”,m,m,m);A、-1,-1,-11B、-1,32767,-177777C、-1,32768,177777D、-1,65535,177777标准答案:D您的答案:D题目分数:5此题得分:5.0批注:3.第3题单选题设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是A、7B、8C、9D、10标准答案:C您的答案:C题目分数:5此题得分:5.0批注:4.第4题单选题假定x和y为double型,则表达式x=2,y=x+3/2的值是A、3.500000B、3C、2.000000D、3.000000标准答案:D您的答案:D题目分数:5此题得分:5.0批注:5.第5题单选题若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为A、1.4B、1C、2.0D、2标准答案:B您的答案:B题目分数:5此题得分:5.0批注:6.第6题单选题执行下面程序:main(){int x=1,y=1,z=1;x=x++ +y++ +z++;printf("%d, %d , %d",x,++y,z++); }输出的结果为A、4,3,2B、3,3,2C、3,3,3D、3,2,2标准答案:A您的答案:A题目分数:5此题得分:5.0批注:7.第7题单选题 void main() {int a=5, b=8;printf(“a=%d b=%d\n”, a,b);a=a+b; b=a-b; a=a-b;printf(“a=%d b=%d\n”, a,b) ; }输出的结果为A、a=5 b=8 a=8,b=5B、a=5 b=8a=5,b=8C、a=8 b=5a=8,b=5D、a=5 b=8a=8,b=8标准答案:A您的答案:A题目分数:5此题得分:5.0批注:8.第8题单选题执行int j,i=1; j=-i++; 后j的值是:A、-1B、-2C、1D、2标准答案:A您的答案:A题目分数:5此题得分:5.0批注:9.第9题单选题以下程序的输出结果是main(){int a=3;printf(“%d\n”,a+(a-=a*a));}A、-6B、12C、0D、-12标准答案:D您的答案:D题目分数:5此题得分:5.0批注:10.第10题单选题以下程序的输出结果是main(){int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b?(a>c?a:c):(b)); }A、5B、4C、6D、不确定标准答案:C您的答案:C题目分数:5此题得分:5.0批注:11.第11题单选题以下程序的输出结果是main(){int a=0,i;for(i=1;i<5;i++){switch(i){case 0:case 3:a+=2;case 1:case 2: a+=3;default: a+=5;}}printf(“%d\n”,a);}A、31B、13C、10D、20标准答案:A您的答案:A题目分数:5此题得分:5.0批注:12.第12题单选题有如下程序:main(){int x=1,a=0,b=0;switch(x){case 0:b++;case 1:a++;case 2:a++;b++;}printf(“a=%d,b=%d\n”,a,b);}该程序的输出结果是A、a=2 b=1B、a=1 b=1C、a=1 b=0D、a=2 b=2标准答案:A您的答案:A题目分数:5此题得分:5.0批注:13.第13题单选题以下四个选项中不能看作一条语句的是A、{;}B、a=0,b=0,c=0;C、if(a>0)D、if(b==0)m=1;n=2;标准答案:D您的答案:D题目分数:5此题得分:5.0批注:14.第14题单选题结构化程序设计方法中有三种基本控制结构,以下不正确的是A、顺序结构B、选择结构C、循环结构D、数组结构标准答案:D您的答案:D题目分数:5此题得分:5.0批注:15.第15题单选题 C语言提供的合法关键字是A、swicthB、chaC、CaseD、default标准答案:D您的答案:D题目分数:5此题得分:5.0批注:16.第16题单选题以下四个选项中,属于实型常量的是A、0x12B、-12345e-3C、1e0.5D、e-5标准答案:B您的答案:B题目分数:5此题得分:5.0批注:17.第17题单选题以下选项中合法的用户标识是A、longB、_2TestC、3DmaxD、A.dat标准答案:B您的答案:B题目分数:5此题得分:5.0批注:18.第18题单选题在C语言中,字符型数据在内存中的存储形式是A、原码B、补码C、反码D、ASCII码标准答案:B您的答案:B题目分数:5此题得分:5.0批注:19.第19题单选题能正确表示逻辑关系“a≥10或a≤0”的C语言表达式是A、a>=10 or a<=0B、a>=10 || a<=0C、a>=10 && a<=0D、a>=10 | a<=0标准答案:B您的答案:B题目分数:5此题得分:5.0批注:20.第20题单选题以下选项中,与k=n++完全等价的表达式是A、k=n,n=n+1B、n=n+1,k=nC、k=++nD、k+=n+1标准答案:A您的答案:A题目分数:5此题得分:5.0批注:试卷总得分:100.0试卷总批注:自测2试题1.第1题单选题以下程序的输出结果是()。

中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案1

中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案1

中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案(图片大小可自由调整)第1卷一.综合考核(共15题)1.下列描述中不正确的是()A.字符型数组中可以存放字符串B.可以对字符型数组进行整体输入、输出C.可以对整型数组进行整体输入、输出D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值2.在执行int a[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是()A.3B.4C.0D.23.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,24.若有说明语句:char c=‘\64’; 则变量C包含:()A.1个字符B.2个字符C.3个字符D.说明不合法,C值不确定5.用数组名作为函数调用时的实参,则实际传递给形参的是()A.数组的第一个元素值B.数组中全部元素值C.数组的首地址D.数组的元素个数6.以下选项中非法的表达式是()A.(a+2)++B.i=j==1C.(char)(65+10)D.x=x-17.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定;8.在“while(!a)”中,其中“!a”与表达式()等价。

A.a==0B.a==1C.a!=1D.a!=09.在C语言中,字符型数据在内存中的存储形式是()A.原码B.补码C.反码D.ASCII码10.以下选项中合法的用户标识是()A.longB._2TestC.3DmaxD.A.dat11.若有说明:char s1='\067', s2='1'; 则变量s1,s2在内存中各占的字节数是()A.1,1B.4,1C.3,1D.1,212.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是()A.2B.3C.4D.无法确定13.以下能正确定义数组并正确赋初值的语句是()A.int N=5,b[N][N];B.int a[1][2]={{1},{3}};C.int c[2][]={{1,2},{3,4}};D.int d[3][2]={{1,2},{34}};14.下面有关for循环的正确描述是()A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来15.已知char b[5], *p=b; ,则正确的赋值语句是()A.b=“abcd”;B.*b=“abcd”;C.p=“abcd”;D.*p=“abcd”;第2卷一.综合考核(共15题)1.已知int a=4,b=5;,这执行表达式a=a>b后,变量a的值为()A.0B.1C.4D.52.以下程序中,while循环的循环次数是() main() { int i=0; while(iA.1 B.10C.6D.死循环,不能确定次数3.以下关于数组的描述正确的是()A.数组大小固定,但是可以有不同类型的数组元素B.数组大小可变,但是所有数组元素的类型必须相同C.数组大小固定,所有元素的类型必须相同D.数组大小可变,可以有不同类型的数组元素4.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,25.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是()A.1B.2C.3D.46.已定义c为字符型变量,则下列语句中正确的赋值语句是()A.c='66';B.c="66"C.c=66;D.c="B"7.已知char ch=‘A’,且表达式:ch=(ch>=‘A’ && chA.AB.aC.zD.Z8.在计算机中,C语言是属于()A.机器语言B.高级语言C.汇编语言D.自然语言9.在C语言中,下列变量名称中合法的是()A.7xB.intC.ELseD.a-b10.下面不是C语言基本数据类型的是()A.指针类型B.整型C.无符号长整型D.单精度型11.执行下面程序,输出的结果为()A.4,3,2B.3,3,2C.3,3,3D.3,2,212.若有说明:char s1=067, s2=1; 则变量s1,s2在内存中各占的字节数是()A.1,1B.4,1C.3,1D.1,2 13.若有说明语句:char c=‘\64’;则变量C包含:()A.1个字符B.2个字符C.3个字符D.说明不合法,C值不确定14.以下非法的赋值语句是()A.n=(i=2, i++);B.j++;C.++(I+1);D.x=j>0;15.执行int j, i=1; j=-i; 后j的值是()A.-1B.-2C.1D.2第1卷参考答案一.综合考核1.参考答案:C2.参考答案:C3.参考答案:A4.参考答案:A5.参考答案:C6.参考答案:A7.参考答案:C8.参考答案:D9.参考答案:D10.参考答案:B11.参考答案:A12.参考答案:C13.参考答案:D14.参考答案:D15.参考答案:C第2卷参考答案一.综合考核1.参考答案:A2.参考答案:D3.参考答案:C4.参考答案:A5.参考答案:B6.参考答案:C7.参考答案:B8.参考答案:B9.参考答案:C10.参考答案:A11.参考答案:A12.参考答案:A 13.参考答案:A14.参考答案:C15.参考答案:A。

最新中国石油大学华东C语言习题答案

最新中国石油大学华东C语言习题答案

中国石油大学华东C 语言习题答案C语言复习题【设计型】5.1 输出一行星号编写程序在一行中输出 N 个星号。

输入: N值输出:一行中N个星号#include<stdio.h>int main(){int a,i;scanf("%d",&a);for(i=1;i<=a;i++)printf("*");printf("\n");return 0;}【设计型】5.2 打印平行四边形输入图形的高 n ,输出如下例( n=5 )所示的图形 .*************************输入:整数n例如 5输出:由*组成的高为5的平行四边形#include<stdio.h>int main(){int i,j,num;scanf("%d",&num);for(i=0;i<num;i++){for(j=0;j<num;j++)printf("*");printf("\n");}return 0;}【设计型】5.3 编程计算编写程序,输入n的值,求 :1-1/2+1/3-1/4+1/5-1/6+1/7-...+1/n (保留四位小数)#include<stdio.h>int main(){double n,i,sum,k=1.0;scanf("%lf",&n);i=1,sum=0;while(i<=n){sum=sum+k/i;i++;k=-k;(用这个式子实现正负交替)}printf("sum=%.4lf\n",sum);return 0;}【设计型】5.4 分数序列有一个分数序列:...............,输入整数n,求出其前n项的和。

输出语句格式为:printf("sum=%16.10f\n",s);#include<stdio.h>int main(){int n,a,b,i,temp;double sum;scanf("%d",&n);i=1,sum=0,a=2,b=1;while(i<=n){sum=sum+a*1.0/b;temp=a;a=a+b;b=temp;(几个式子实现数值的变换)i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.5 求e的值编写程序,从键盘输入整数 n , 求 e 的值 . e=1+1/1!+1/2!+1/3!+..+1/n! 注意:用 double 型数据计算输出语句:printf("sum=%16.10f\n",sum);#include<stdio.h>int main(){int n,i;double sum,jc;scanf("%d",&n);i=1,sum=1.0 jc=1.0;while(i<=n){jc=jc*i;sum=sum+1.0/jc;i++;}printf("sum=%16.10f\n",sum);return 0;}【设计型】5.6 最大公约数输入两个正整数m和n,求它们的最大公约数和最小公倍数比如,输入m和n的值分别为14和21,则最大公约数为7,最小公倍数为42。

中国石油大学C语言考试题及答案

中国石油大学C语言考试题及答案

中国石油大学C语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的叙述中,正确的是()。

A. C语言是高级语言B. C语言是面向对象的编程语言C. C语言是汇编语言D. C语言是机器语言答案:A2. 在C语言中,int类型的变量占用的内存空间通常是()。

A. 1个字节B. 2个字节C. 4个字节D. 8个字节答案:C3. 下列哪个选项不是C语言中的关键字()。

A. ifB. elseC. switchD. then答案:D4. C语言中,用于定义数组的关键字是()。

A. intB. floatC. arrayD. struct答案:A5. 在C语言中,用于定义函数的关键字是()。

A. functionB. defC. defineD. void答案:D6. 下列哪个选项是C语言中的合法标识符()。

A. 2variableB. variable2C. variable$2D. variable_2答案:D7. C语言中,用于表示逻辑“与”操作的运算符是()。

A. ||B. &&C. andD. or答案:B8. 在C语言中,用于定义指针的关键字是()。

A. pointerB. ptrC. refD. *答案:D9. 下列哪个选项是C语言中的合法字符串字面量()。

A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A10. C语言中,用于表示逻辑“非”操作的运算符是()。

A. notB. !C. ~D. ^答案:B二、填空题(每题2分,共20分)1. 在C语言中,表示字符常量的数据类型是____。

答案:char2. C语言中,用于计算两个数的和的运算符是____。

答案:+3. 在C语言中,用于定义结构体的关键字是____。

答案:struct4. C语言中,用于定义枚举类型的关键字是____。

答案:enum5. C语言中,用于定义联合类型的关键字是____。

中国石油大学C语言上机题答案(2013版)答案_最全最详细

中国石油大学C语言上机题答案(2013版)答案_最全最详细

中国石油大学c语言上机题答案大全(2013版)最全最详细1.1 Hello world.让我们用C语言向世界问好。

最早的程序基本是这个样子的:程序一:#include <stdio.h>void main(){printf("Hello world.\n");}程序二:#include <stdio.h>int main(){printf("Hello world.\n");return 0;}上面的程序你任意模仿一个,看看是否可以通过?如果你能通过这个简单的程序,那就让我们继续完成后面的习题吧。

输入:无输出:Hello world.#include<stdio.h>int main(){printf("Hello world.\n");}1.2 Welcome to Beijing.让我们来练习如何显示多行文字。

输入:无输出:就是下面的那段文字。

#include<stdio.h>void main(){printf("Welcome\n");printf("to\n");printf("Beijing.\n");}1.3 练习最简单的printf和scanfprintf函数和scanf函数是C语言中最常用的函数之一,下面让我们练习一下吧。

输入:整型变量x的值。

输出:输出整型变量x对应的十进制、八进制和十六进制形式。

认真观察-1的八进制和十六进制输出,请想想是为什么。

#include <stdio.h>int main(){int x;scanf("%d",&x);printf("x=%d,",x);printf("x=%o,",x);printf("x=%x\n",x);return 0;}1.4 练习两个整数之间的运算背景:基本练习。

石油大学C语言在线考试附答案

石油大学C语言在线考试附答案

《C语言》综合复习资料一、单选题1. C语言中基本数据类型有( )A)整型、实型、逻辑型B)整型、字符型、逻辑型C)整型、实型、字符型D)整型、实型、字符型、逻辑型2. 在C语言中,数字029是一个( )A)八进制数B)十进制数C)十六进制数D)非法数3. 在以下关于C语言的不严格的叙述中,错误的说法是( )A)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“=”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4. 已知int a=4,b=5; ,这执行表达式a=a>b 后,变量a的值为( )A)0 B)1 C) 4 D) 55. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是( )A)a&&b B)a<=b C)a||b+c&&b-c D)!((a<b)&&!c||1) 6. 以下不合法的赋值语句是( )A)x=(1,y=2); B)++x; C)x=y=15; D)y=int(x);7. 已定义c为字符型变量,则下列语句中正确的是( )A)c='97'; B)c="97"; C)c="a"; D)c=97;8. 能将高级语言编写的源程序转换为目标程序的软件是( )A)汇编程序B)编辑程序C)解释程序D)编译程序9. 设有定义char *p=“abcde\0fghjik\0”; 则p rintf(“%d\n”,strlen(p));输出结果是( )A) 12 B) 15 C) 6 D) 510.以下选项中合法的实型常数是( )A) 5E2.0 B) E-3 C) .2E0 D) 1.3E11.以下非法的赋值语句是( )A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;12.已定义c为字符型变量,则下列正确的赋值语句是( )A)c='66'; B)c="66"; C)c="B"; D)c=66;13.设a=3,b=4,c=-5,则逻辑表达式:a || b+c&& b==c 的值是( )A)1 B)0 C)非0 D)语法错14.以下能正确定义数组并正确赋初值的语句是( )A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};15.结构化程序设计的三种基本结构是( )A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-while D)if、for、continue16.在一个C程序中( )A)main函数必须出现在所有函数之前B)main函数可以在任何地方出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置17.以下合法的字符常量是( )A)‘\084’B)‘ab’C)‘\x43’D)“\0”18.用8位无符号二进制数能表示的最大十进制数为( )A)127 B)128 C)255 D)25619.设有定义:int x=0,y=1,z=1;则运行表达式:x=y++>z--后,x,y,z的值分别是( )A)1,1,1 B)1,2,0 C)0,1,1 D)0,2,020.设有int x=11;则表达式(x++*1/3)的值是( )A)3 B)4 C)11 D)1221.若有: int x=1,n=5; 则执行语句x%=(n%2)后,x的值为( )A)3 B)2 C)1 D)022.结构化程序的3种基本控制结构是( )A) if-else结构、while结构、for结构B) 顺序结构、分支机构、循环结构C) while结构、do-while结构、for结构D) 以上三种都不对23.下面程序段的输出结果是( )int k=11;printf(“%d,%o,%x”,k,k,k);A)11,12,11 B)11,13,13 C)11,013,0xb D)11,13,b24.在微型计算机系统中,存储一个汉字的国标码所需要的字节数是( )A) 1 B) 2 C) 3 D) 425.以下非法的赋值语句是( )A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j>0;26.语句:printf("%d",(a=2)&&(b=-2)); 的输出结果是( )A)无输出B)结果不确定C)1 D)227.设有定义语句:charstr[][20]={"Hello","Beijing"},*p=str; ( )则printf("%d\n",strlen(p+20)); 输出结果是A)0 B)5 C)7 D)2028.以下选项中,与k=++n完全等价的表达式是( )A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1二、读程序,写出程序执行结果1. #include <stdio.h>void main(){ int a=10,b=0;if(a==12){a++; b++; }else{ a=a+3 ; b=b+3;}printf(“%d,%d\n”,a,b);}2. #include <stdio.h>void main(){ ints,i;for(s=0,i=1;i<5;i++,s+=i) ;printf(“%d\n”,s);}3. #include “stdio.h”void main(){ char n=‘c’;switch(n++){ default: printf(“error!”); break;case ‘a’: case ‘A’:case ‘b’: case ‘B’: printf(“good!”);break; case ‘c’: case ‘C’: printf(“pass!”);case ‘d’: case ‘D’: printf(“warm!”);}}4. #include <stdio.h>void main(){ int k=4,n=0;for( ; n<k ; ){ n++;if(n%3!=0) continue;k- -;}printf("%d,%d\n",k,n);}5. #include <stdio.h>int f(int b[],intm,int n){ inti,s=0;for(i=m;i<=n;i+=2) s+=b[i];return s;}void main(){ intx,a[]={1,2,3,4,5,6,7,8,9,10};x=f(a,3,8);printf(“%d\n”,x);}6. #include <stdio.h>voidcopy_str(char from[ ],char to[ ]){ int k=0;while(from[k]!=‘\0’){ to[k]=from[k];k++;}to[k]=‘\0’;/*末尾加上串结束标志*/ }void main(){ char str1[80]=”red”,str2[80]=”green”;copy_str (str1,str2);puts(str2);}7. #include <stdio.h>int d=1;void fun(int p){ int d=5;d+=p++;printf(“%d”,d);}void main(){ int a=3;fun(a); d+=a++;printf("%d\n", d);}8.#include <stdio.h>void main(){ int i,j;for(i=0;i<3;i++){for(j=0;j<=i;j++)printf("*");printf("\n");}}9. #include <stdio.h>void main(){ inti;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default :printf("%d ", i);}}10.#include <stdio.h>intws(int x){ if(x/100>0)return(3);else if(x/10>0 )return(2);elsereturn(1);}void main(){ int a=123;printf("%d是%d位数\n",a,ws(a));}11. #include <stdio.h>#include <string.h>void main(){ char a[10]="abc";char b[]="defg";puts(a);puts(b);puts(strcat(a,b));}12.#include <stdio.h>void main(){ int i,n[]={1,2,3,4,5};for(i=0;i<2;i++){ n[i]=n[4-i]+1;printf("%d ",n[i]);}for(i=0;i<5;i++)printf("%d ",n[i]);}13.#include <stdio.h>void main(){ int a[3][4]={{1,2,3,4},{9,7,10,6},{-1,8,-5,5}};int i,j,row=0,colum=0,max;max=a[0][0];for(i=0;i<=2;i++)for(j=0;j<=3;j++)if(a[i][j]>max){ max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d",max,row,colum);}14.#include <stdio.h>voidcopy_str(char from[ ],char to[ ]){ int k=0;while(from[k]!= ‘\0’){ to[k]=from[k];k++;}to[k]=‘\0’;/*末尾加上串结束标志*/}void main(){ char str1[80]= "good",str2[80]= "abcdef";copy_str(str1,str2);puts(str2);}15. #include <stdio.h>void main(){ int a=0;a+=(a=8);printf(“%d\n”,a);}16. #include <stdio.h>void main(){ int x=4;if(x++>=5)printf(“%d\n”, x) ;elseprintf(“%d\n”, x--) ;}17. #include <stdio.h>#define MAX(a,b) (a>b ? a : b)+1void main(){ int i=6,j=8;printf(“%d\n”,MAX(i,j));}18.#include <stdio.h>void main(){ int i,j,m=0,n=0,k=0;for(i=6; i<=9;i++)for(j=2; j<=3;j++)switch(i%j ){ case 0: m++; break;case 1: n++; break;case 2: k++; break;default: k++;n++;m++;}printf("%d %d %d\n",m,n,k);}19. #include <stdio.h>void main(){ inti;for(i=1;i<5;i++){ if(i%2)putchar(‘<’);elsecontinue;putchar(‘>’);}putchar(‘#’);}20.#include <stdio.h>void main(){ int i,n[]={1,2,3,4,5};for(i=0;i<2;i++){ n[i]=n[4-i]+1;printf("%d ",n[i]);}for(i=0;i<5;i++){ printf("%d ",n[i]);}}21. #include <stdio.h>int m=13;int fun(int x,int y){ int m=3;return(x*y-m);}void main(){ int a=7, b=5;printf("%d\n", fun(a,b)/m);}22. #include <stdio.h>void main(){ int n=2;printf(“%d,%d,%d\n”, ++n , n+=2 , --n) ;}23. #include <stdio.h>void main(){ int x=1,a=0,b=0;switch(x){ case 0: b++;case 1: a++;case 2: a++;b++;}printf(“a=%d,b=%d\n”,a,b);}24. #include <stdio.h>void main(){ ints,t,a=-2,b=6;s=t=1;if(a>0) s=s+1;if(a>b) t=s+t;else if(a==b) t=5;else t=2*s;printf("t=%d ", t);}25. #include <stdio.h>#define S(a,b) (a)*(b)void main(){ int a=3 ,area;area=S(a,a+3) ;printf("area=%d\n",area);}26. #include <stdio.h>void main(){ inti=0,a=0;while(i<20 ){ for(;;)if((i%10)==0) break;elsei--;i+=11;a+=i;}printf("%d\n",a);}27. #include <stdio.h>void main(){ int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0 ;for(i=0;i<4;i++) s+=aa[i][2];printf(“%d \n”,s);}28. #include <stdio.h>fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf("%d\n", r);}三、编程题1. 设有分段函数:x (x <1)Y= 2x-1 (1≤x <10) 写一程序,输入 x ,输出 y 的值。

C语言期中自测题(中国石油大学(华东))

C语言期中自测题(中国石油大学(华东))

2013—2014学年第1学期《程序设计语言(C)》期中考试试卷专业班级姓名学号开课系室计算机与通信工程学院考试日期 2013.11一、单项选择题(30分,每题2分)[ ]1、C程序的执行总是从哪里开始的?A)main函数 B)第一行 C)头文件 D)函数注释[ ]2、以下符号中能作为标识符的是:A)_256B)void C)scanf D)struct[ ]3、以下程序的输出结果是:A)1 A 1 6.5 B)1 A 1.500000 6.5 C)1 A 1.0 6.5 D)1 A 1.5 6.5 #include <stdio.h>int main(){int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %c %3.1f %3.1f”,a,c,f,x);return 0;}[ ]4、有以下程序#include <stdio.h>int main(){ int i;for(i=0;i<3;i++)switch(i){ case 0: printf(“%d”,i);case 2: printf(“%d”,i);default: printf(“%d”,i);}return 0;}程序运行后的输出结果是A)022111 B)021021 C)000122 D)012[ ]5、下面的程序输出为ABC,程序输入的正确形式应该为#include<stdio.h>int main(){ char ch1,ch2,ch3;scanf(“%c,%c,%c”,&ch1,&ch2,&ch3);printf(“%c%c%c”,ch1,ch2,ch3);return 0; }A) ABC B) A B C C) A,B,C D) ch1=A,ch2=B,ch3=C[ ]6、在一个C程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置[ ]7、字符型数据在计算机中存储的是字符的:A)原码B)补码C)反码D)ASCII码[ ]8、能正确表示a和b同时为正或同时为负的表达式是:A) (a>=0‖b>=0) && (a<0‖b<0)B) (a>=0 && b>=0) && (a<0 && b<0)C) (ab>0) && (ab<=0)D) a*b>0[ ]9、下列条件语句中,功能与其他语句不同的是A) if(a) printf(“%d\n”,x);else printf(“%d\n”,y);B) if(a==0) printf(“%d\n”,y);else printf(“%d\n”,x);C) if (a!=0) printf(“%d\n”,x); else printf(“%d\n”,y);D) if(a==0) printf(“%d\n”,x); else printf(“%d\n”,y);[ ]10、已知ch是字符型变量,下面不正确的赋值语句是____。

结构体与联合体习题含答案

结构体与联合体习题含答案

结构体与联合体习题含答案结构体与联合体习题年 2013选择题1、若程序中有以下的说明和定义:struct abc花括号后少了分号。

{ int x;char y; }struct abc s1,s2;。

则会发生的情况是______ 程序将顺序编译、连接、执行B) A) 编译时错能顺序通过编译、但连接出错C) 能顺序通过编译、连接、但不能执行D)、有以下程序段2struct stint *y;}*pt; { int x;int a[]={1,2};b[]={3,4};c[2]={10,a,20,b}; struct stpt=c;的是以下选项中表达式的值为11D) (pt++)->x C) ++pt->x A) *pt->y B) pt->x3、有以下说明和定义语句struct student{ int age; char num[8];};,?403}};struct student *p=stu;______。

以下选项中引用结构体变量成员的表达式错误的是stu[3].age D)B) p->num C) (*p).num A) (p++)->num、设有如下枚举类型定义4enum language {Basic=3,Assembly=6,Ada=100,COBOL,Fortran};。

枚举量Fortran的值为______ C)102 D) 103 A) 4 B) 7 、以下叙述中错误的是_________。

5 可以通过typedef增加新的类型A) typedef将已存在的类型用一个新的名字来代表B)可以用typedef定义新的类型名后,原有类型名仍有效C)用用typedef可以为各种类型起别名,但不能为变量起别名D) 、有以下程序段6struct NODEtypedef *next; struct NODE num; { int} OLD;以下叙述中正确的是A)以上的说明形式非法B) NODE是一个结构体类型C) OLD是一个结构体类型D) OLD是一个结构体变量7、以下选项中不能正确把cl定义成结构体变量的是______。

2013秋石油大学华东C语言》第四阶段在线作业(自测)

2013秋石油大学华东C语言》第四阶段在线作业(自测)

2013秋石油大学华东C语言》第四阶段在线作业(自测)D9.第9题单选题在执行inta[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是A、3B、4C、0D、2标准答案:C您的答案:题目分数:5此题得分:0.0批注:10.第10题单选题C语言中变量的指针指的是:A、变量类型B、变量值C、变量值D、变量地址标准答案:D您的答案:题目分数:5此题得分:0.0批注:11.第11题单选题在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是A、地址传递B、由实参传给形参,再由形参返回实参C、值传递D、传递方式由用户指定标准答案:C您的答案:题目分数:5此题得分:0.0批注:12.第12题单选题已知char b[5],*p=b; ,则正确的赋值语句是A、b=“abcd”;B、*b=“abcd”;C、p=“abcd”;D、*p=“abcd”;标准答案:C您的答案:题目分数:5此题得分:0.0批注:13.第13题单选题C语言中,运算对象必须是整型数的运算符是A、%B、\C、% 和 \D、**标准答案:A您的答案:题目分数:5此题得分:0.0批注:14.第14题单选题设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为:A、strcpy(str1,str2);B、strcpy(str1, “China”);C、strcat(str1,“China”)D、strcat(“Beijing”,str2);标准答案:C您的答案:题目分数:5此题得分:0.0批注:15.第15题单选题在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:A、整型实型字符型B、整型数组指针C、数组结构体共用体D、指针逻辑型空类型标准答案:A您的答案:题目分数:5此题得分:0.0批注:16.第16题单选题程序段如下 int k=0; while(k++<=2); printf("last=%d\n",k); 则执行结果是last=A、2B、3C、4D、无结果标准答案:C您的答案:题目分数:5此题得分:0.0批注:17.第17题单选题能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是A、(x<=-10)||(x>=-5)&&(x<=0)||B、(x>=-10)&&(x<=-5)||(x>=0)&&C、(x>=-10)&&(x<=-5)&&(x>=0)&&D、(x<=-10)||(x>=-5)&&(x<=0)||标准答案:B您的答案:题目分数:5此题得分:0.0批注:18.第18题单选题若有以下定义:inta[10],*p=a; 则*(p 3)表示的是A、元素a[3]的地址B、元素a[3]的值C、元素a[4]的地址D、元素a[4]的值标准答案:B您的答案:题目分数:5此题得分:0.0批注:19.第19题单选题下列说法正确的是A、main函数必须放在C程序的开头B、main函数必须放在C程序的最后C、main函数可以放在C程序的中间部分,但D、main函数可以放在C程序的中间部分,但标准答案:D您的答案:题目分数:5此题得分:0.0批注:20.第20题单选题下面程序段的运行结果是char a[7]=”abcdef”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]);A、空格B、\0C、eD、f标准答案:D您的答案:题目分数:5此题得分:0.0批注:试卷总得分:0.0试卷总批注:。

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

12.1 修改学生的各科成绩给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、和3门课的成绩。

函数fun的功能是将该学生的各科成绩都乘以一个系数a。

请在程序的下划线处填入正确的容并把下划线删除,使程序得出正确的结果。

注意:只需提交补充完整的fun函数和main函数预设代码/**********found**********/void fun(___1___ *ss,float a){int i;for(i=0; i<3; i++)/**********found**********/ss->___2___ *=a;}int main( ){STU std={ 1,"Zhanghua",76.5,78.0,82.0 };float a;scanf("%f",&a);/**********found**********/fun(___3___,a);show(std);return 0;}/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include <stdio.h>#include <string.h>#include <stdio.h>typedef struct{int num;char name[9];float score[3];}STU;void show(STU tt){int i;printf("%d %s : ",tt.num,);for(i=0; i<3; i++)printf("%5.1f",tt.score[i]);printf("\n");}/* PRESET CODE END - NEVER TOUCH CODE ABOVE *//**********found**********/void fun(STU *ss,float a){int i;for(i=0; i<3; i++)/**********found**********/ss->score[i] *=a;}int main( ){STU std={ 1,"Zhanghua",76.5,78.0,82.0 }; float a;scanf("%f",&a);/**********found**********/fun(&std,a);show(std);return 0;}12.2 修改学生信息程序通过定义学生结构体变量,存储了学生的学号、和 3 门课的成绩。

函数 fun 的功能是对形参 b 所指结构体变量中的数据进行修改 , 最后在主函数中输出修改后的数据。

例如 : b 所指变量 t 中的学号、、和三门课的成绩依次是 : 10002 、 "ZhangQi" 、93 、 85 、 87 ,修改后输出 t 中的数据应为: 10004 、 " LiJie " 、 93 、 85 、87 。

请在程序的下划线处填入正确的容并把下划线删除 , 使程序得出正确的结果。

不得增行或删行,也不得更改程序的结构!注意:只需提交补充完整的fun函数和main主函数预设代码void fun( struct student *b){/**********found**********/b__1__ = 10004;/**********found**********/strcpy(b__2__, "LiJie");}int main(){struct student t={10002,"ZhangQi", {93, 85, 87}};int i;/**********found**********/fun(__3__);printf("No: %ld Name: %s\nScores:",t.sno, );for (i=0; i<3; i++) printf("%6.2f", t.score[i]);printf("\n");return 0;}/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include <stdio.h>#include <string.h>struct student{long sno;char name[10];float score[3];};/* PRESET CODE END - NEVER TOUCH CODE ABOVE */void fun( struct student *b){/**********found**********/b->sno = 10004;/**********found**********/strcpy(b->name, "LiJie");}int main(){struct student t={10002,"ZhangQi", {93, 85, 87}}; int i;/**********found**********/fun(&t);printf("No: %ld Name: %s\nScores:",t.sno, ); for (i=0; i<3; i++) printf("%6.2f", t.score[i]);printf("\n");return 0;}12.3 学生信息的排序程序通过定义学生结构体数组,存储了若干名学生的学号、和 3 门课的成绩。

函数 fun 的功能是将存放学生数据的结构体数组,按照的字典序(从小到大)排序。

请在程序的下划线处填入正确的容并把下划线删除 , 使程序得出正确的结果。

注意:只需提交补充完整的fun函数。

预设代码void fun(struct student a[], int n){/**********found**********/__1__ t;int i, j;/**********found**********/for (i=0; i<__2__; i++)for (j=i+1; j<n; j++)/**********found**********/if (strcmp(__3__) > 0){ t = a[i]; a[i] = a[j]; a[j] = t; }}/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include <stdio.h>#include <string.h>struct student{long sno;char name[10];float score[3];};/* PRESET CODE END - NEVER TOUCH CODE ABOVE */void fun(struct student a[], int n){/**********found**********/struct student t;int i, j;/**********found**********/for (i=0; i<n-1; i++)for (j=i+1; j<n; j++)/**********found**********/if (strcmp(a[i].name,a[j].name) > 0){ t = a[i]; a[i] = a[j]; a[j] = t; }}12.4 找出指定分数围的学生学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把指定分数围的学生数据放在h所指的数组中,分数围的学生人数由函数值返回。

例如,输入的分数是60 69, 则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。

主函数中将把60放在low中,把69放在heigh中。

注意:只需提交fun函数STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",96},{"GA 007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{ "GA014",91},{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}};12.5找出分数最低的学生学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中, 请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。

注意: 只需提交fun函数/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */#include <stdio.h>#define N 16typedef struct{char num[10];int s;}STREC;/* PRESET CODE END - NEVER TOUCH CODE ABOVE */int fun(STREC s[],STREC h[]){int j,min,count=0;min=s[0].s;for(j=1;j<N;j++){if(s[j].s<min){min=s[j].s;}}for(j=0;j<N;j++){if(s[j].s==min){h[count]=s[j];count++;}}return count;}/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */int main(){STRECs[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA015",85},{"GA013",91},{"GA012",64},{"GA014", 91},{"GA011",91},{"GA017",64},{"GA018",64},{"GA016",72}};STREC h[N];int i,n;n=fun(s,h);for(i=0;i<n; i++)printf("%s %4d\n",h[i].num,h[i].s);return 0;}/* PRESET CODE END - NEVER TOUCH CODE ABOVE */12.6求平面上两点距离编写程序,计算二维平面上两点p1和p2间的直线距离。

相关文档
最新文档