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 B1 C 4 D 5
5. 设有定义int a=3;b=4;c=5; ;则以下表达式中;值为0的表达式是
A a&&b
B a<=b
C a||b+c&&b-c
D a
6. 以下不合法的赋值语句是
Ax=1;y=2; B++x; Cx=y=15; Dy=intx;
7. 已定义c为字符型变量;则下列语句中正确的是
Ac='97'; Bc="97"; Cc="a"; Dc=97;
8. 能将高级语言编写的源程序转换为目标程序的软件是
A汇编程序B编辑程序C解释程序D编译程序
9. 设有定义char *p=“abcde\0fghjik\0”; 则printf“%d\n”;strlenp;输出结果是
A 12
B 15
C 6
D 5
10.以下选项中合法的实型常数是
A 5E2.0
B E-3
C .2E0
D 1.3E
11.以下非法的赋值语句是
A n=i=2;++i;
B j++;
C ++i+1;
D x=j>0;
12.已定义c为字符型变量;则下列正确的赋值语句是
Ac='66'; Bc="66"; Cc="B"; Dc=66;
13.设a=3;b=4;c=-5;则逻辑表达式:a || b+c&& b==c 的值是
A1 B0 C非0 D语法错
14.以下能正确定义数组并正确赋初值的语句是
Aint N=5;bNN; Bint a12={{1};{3}};
Cint c2= {{1;2};{3;4}}; Dint d32={{1;2};{34}};
15.结构化程序设计的三种基本结构是
A顺序结构、选择结构、循环结构Bif、switch、break
Cfor、while、do-while Dif、for、continue
16.在一个C程序中
Amain函数必须出现在所有函数之前Bmain函数可以在任何地方出现
Cmain函数必须出现在所有函数之后Dmain函数必须出现在固定位置17.以下合法的字符常量是
A‘\084’B‘ab’C‘\x43’D“\0”
18.用8位无符号二进制数能表示的最大十进制数为
A127 B128 C255 D256
19.设有定义:int x=0;y=1;z=1;则运行表达式:x=y++>z--后;x;y;z的值分别是
A1;1;1 B1;2;0 C0;1;1 D0;2;0
20.设有int x=11;则表达式x++*1/3的值是
A 3 B4 C 11 D 12
21.若有: int x=1;n=5; 则执行语句x%=n%2后;x的值为
A 3 B2 C 1 D 0
22.结构化程序的3种基本控制结构是
A if-else结构、while结构、for结构
B 顺序结构、分支机构、循环结构
C while结构、do-while结构、for结构
D 以上三种都不对
23.下面程序段的输出结果是
int k=11;
printf“%d;%o;%x”;k;k;k;
A11;12;11 B11;13;13 C11;013;0xb D11;13;b
24.在微型计算机系统中;存储一个汉字的国标码所需要的字节数是
A 1
B 2
C 3
D 4
25.以下非法的赋值语句是
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 2
27.设有定义语句:charstr20={"Hello";"Beijing"};*p=str;
则printf"%d\n";strlenp+20; 输出结果是
A0 B5 C7 D20
28.以下选项中;与k=++n完全等价的表达式是
A k=n;n=n+1
B n=n+1;k=n
C k=++n
D k+=n+1
二、读程序;写出程序执行结果
1. #include
void main
{ int a=10;b=0;
ifa==12
{a++; b++; }
else
{ a=a+3 ; b=b+3;}
printf“%d;%d\n”;a;b;
}
2. #include
void main
{ ints;i;
fors=0;i=1;i<5;i++;s+=i ;
printf“%d\n”;s;
}
3. #include “stdio.h”
void main
{ char n=‘c’;
switchn++
{ 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
void main
{ int k=4;n=0;
for ; n { n++; ifn%3=0 continue; k- -; } printf"%d;%d\n";k;n; } 5. #include int fint b;intm;int n { inti;s=0; fori=m;i<=n;i+=2 s+=bi; return s; } void main { intx;a={1;2;3;4;5;6;7;8;9;10}; x=fa;3;8; printf“%d\n”;x; } 6. #include voidcopy_strchar from ;char to { int k=0; whilefromk=‘\0’ { tok=fromk;k++;} tok=‘\0’;/*末尾加上串结束标志*/ } void main { char str180=”red”;str280=”green”; copy_str str1;str2; putsstr2; } 7. #include int d=1; void funint p { int d=5; d+=p++; printf“%d”;d; } void main { int a=3; funa; d+=a++; printf"%d\n"; d; } 8.#include void main { int i;j; fori=0;i<3;i++ { forj=0;j<=i;j++ printf"*"; printf"\n"; } } 9. #include 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 intwsint x { ifx/100>0 return3; else ifx/10>0 return2; else return1; } void main { int a=123; printf"%d是%d位数\n";a;wsa;} 11. #include #include void main { char a10="abc"; char b="defg"; putsa; putsb; putsstrcata;b; } 12.#include void main { int i;n={1;2;3;4;5}; fori=0;i<2;i++ { ni=n4-i+1; printf"%d ";ni; } fori=0;i<5;i++ printf"%d ";ni; } 13.#include void main { int a34={{1;2;3;4};{9;7;10;6};{-1;8;-5;5}}; int i;j;row=0;colum=0;max; max=a00; fori=0;i<=2;i++ forj=0;j<=3;j++ ifaij>max { max=aij; row=i; colum=j; } printf"max=%d;row=%d;colum=%d";max;row;colum; } 14.#include voidcopy_strchar from ;char to { int k=0; whilefromk= ‘\0’ { tok=fromk;k++;} tok=‘\0’;/*末尾加上串结束标志*/ } void main { char str180= "good";str280= "abcdef"; copy_strstr1;str2; putsstr2; } 15. #include void main { int a=0; a+=a=8; printf“%d\n”;a; } 16. #include void main { int x=4; ifx++>=5 printf“%d\n”; x ; else printf“%d\n”; x-- ; } 17. #include #define MAXa;b a>b a : b+1 void main { int i=6;j=8; printf“%d\n”;MAXi;j; } 18.#include void main { int i;j;m=0;n=0;k=0; fori=6; i<=9;i++ forj=2; j<=3;j++ switchi%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 void main { inti; fori=1;i<5;i++ { ifi%2 putchar‘<’; else continue; putchar‘>’; } putchar‘#’; } 20.#include void main { int i;n={1;2;3;4;5}; fori=0;i<2;i++ { ni=n4-i+1; printf"%d ";ni; } fori=0;i<5;i++ { printf"%d ";ni; } } 21. #include int m=13; int funint x;int y { int m=3; returnx*y-m; } void main { int a=7; b=5; printf"%d\n"; funa;b/m; } 22. #include void main { int n=2; printf“%d;%d;%d\n”; ++n ; n+=2 ; --n ; } 23. #include void main { int x=1;a=0;b=0; switchx { case 0: b++; case 1: a++; case 2: a++;b++; } printf“a=%d;b=%d\n”;a;b; } 24. #include void main { ints;t;a=-2;b=6; s=t=1; ifa>0 s=s+1; ifa>b t=s+t; else ifa==b t=5; else t=2*s; printf"t=%d "; t; } 25. #include #define Sa;b a*b void main { int a=3 ;area; area=Sa;a+3 ; printf"area=%d\n";area; } 26. #include void main { inti=0;a=0; whilei<20 { for;; ifi%10==0 break; elsei--; i+=11; a+=i; } printf"%d\n";a; } 27. #include void main { int aa44={{1;2;3;4};{5;6;7;8};{3;9;10;2};{4;2;9;6}}; inti;s=0 ; fori=0;i<4;i++ s+=aai2; printf“%d \n”;s; } 28. #include funint a; int b { ifa>b returna; else returnb; } void main { int x=3; y=8; z=6; r; r=funfunx;y; 2*z; printf"%d\n"; r; } 三、编程题 1. 设有分段函数: x x <1 Y= 2x-1 1≤x <10 写一程序;输入 x;输出 y 的值.. 3x-11 x≥10 2.编程任意输入两个实数a 和b;计算下面函数的值;并输出y 值.. a-b a>b y= b a a< b a*b a=b 3.编程序求如下分段函数的值 4.写一个判断素数的函数..要求在主函数中输入一个整数并输出相应的判断信息.. 5.编程序计算 s=1-2+3-4+ …… -10;并输出结果.. 6.编写一个函数;将一个字符串最多80个字符中的大写字母变为小写字母;小写字母变为大写字母..要求字符串的输入与输出在主函数中完成.. 7.编程计算:s=1+12+123+1234+12345+123456 必须用循环控制语句实现 8.编写函数change 使输入的字符串按反序存放;在主函数中输入和输出字符串.. 例如输入是:12345abcde;则输出为:edcba54321 9.编程;在N×N 矩阵中即N 行N 列的数组;求主对角线和次对角线上的各元素之和.. 10.10个评委给出某选手打分;编程实现去掉一个最高分和一个最低分;求最后得分平均分 C语言综合复习资料参考答案一、单选题 二、读程序写出程序执行结果题 1、13;3 2、14 3、passwarm 4、3;3 5、18 6、red 7、84 8、 * ** 9、011122 10、123是3位数 11、 abc defg abcdefg 12、6565345 13、max=10;row=1;colum=2 14、good 15、16 16、5 17、9 18、4 3 1 19、<><># 20、6565345 21、2 22、4;3;1 23、a=2;b=1 24、t=2 25、area=18 26、32 27、29 28、12 三、编程题 1. 设有分段函数: x x<1 Y= 2x-1 1≤x<10 写一程序;输入x;输出y 的值.. 3x-11 x≥10 #include void main { intx;y; printf“输入x:”; scanf“%d\n”;&x; ifx<1 {y=x; printf“x=%3d;y=x=%d\n”;x;y; } else ifx<10 {y=2*x-1; printf“x=%3d;y=2*x-1=%d\n”;x;y; } else {y=3*x-11; printf“x=%3d;y=3*x-11=%d\n”;x;y; } } 2.编程任意输入两个实数a和b;计算下面函数的值;并输出y值.. a-b a>b y= b a a #include scanf“%f;%f”;&a;&b; ifa 3.编程序求如下分段函数的值 #include {y=2*x+sqrtx; printf“x=%f;y=%f \n”;x;y; } 4.写一个判断素数的函数..要求在主函数中输入一个整数并输出相应的判断信息.. #include printf“please enter a integer number;n= ”; scanf“%d”;&n; fori=2;i<=n-1;i++ ifn%i==0break; ifi elseprintf“%d is a prime number.\n”;n; } 求素数的问题方法有很多;同学们可以到教材或网络上进行查找学习.. 5.编程序计算s=1-2+3-4+ …… -10;并输出结果.. #include void main {inti;k=1;njie=1; float sum=0; fori=1;i<=10;i++ {njie=njie*i; sum=sum+njie*k; k=-1*k; } printf"%f\n";sum; } 6.编写一个函数;将一个字符串最多80个字符中的大写字母变为小写字母;小写字母变为大写字母..要求字符串的输入与输出在主函数中完成.. #include void main { inti; char a80; getsa; putsa; fori=0;i<80;i++ ifai>=65&&ai<=90 ai=ai+32; putsa; } 7.编程计算:s=1+12+123+1234+12345+123456 必须用循环控制语句实现 #include void main { longint t=0;s=0;i; fori=1;i<=6;i++ {t=i+t*10;s=s+t;} printf”s=%ld\n”;s; } 本题请注意s数据类型的定义.. 8.编写函数change使输入的字符串按反序存放;在主函数中输入和输出字符串..例如输入是:12345abcde;则输出为:edcba54321 void main { char a100; getsa; changea; putsa; } #include #include void changechar a { inti;j;k; char temp; k=strlena; fori=0;i forj=i+1;j { temp=ai; ai=aj; aj=temp; } } 9.编程;在N×N矩阵中即N行N列的数组;求主对角线和次对角线上的各元素之和.. #define N 10; main { inti;j; int aNN; int sum=0; fori=0;i forj=0;j scanf"%d";&aij; fori=0;i forj=0;j ifi==j||i+j==N//i==j是判断是否主对角线的元素i+j==N 是判断是否是次对角线的元素sum+=aij; printf"%d";sum; } 10.10个评委给出某选手打分;编程实现去掉一个最高分和一个最低分;求最后得分平均分 #include int main { int a10;i;max;min; float sum; fori=0;i<10;i++ { scanf"%d";&ai; } max=a0; min=a0; fori=1;i<=9;i++ { ifmax max=ai; else ifmin>ai min=ai; } fori=0;i<=9;i++ {sum=sum+ai;} sum=sum-max-min/8; printf"%f\n";sum; } } 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[1 0]中,下面语句中能把“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)); 输出结果是() ?A) ? ?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 ? 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 ? 8.7 求最大值 问题描述要求从键盘输入10个整型数据,找出其中的最大值并显示出来。 输入范例 3 0 54 -710 27 32767 10 1 500 2 输出范例 32767 提示先假定第一个元素时最大值,然后和其他的元素一个一个的进行比较,直到找到最大值。 #include for(i=9;i>=0;i--) printf("%d ",a[i]); printf("\n"); return 0; } 8.1 谁能出线 背景:电视台举办“超级学生”才艺大赛,由于报名人数狂多,所以要先进行分组预赛。按规定,每10名学生为一个预赛小组,评委打出分数(0~100分),各小组第一名可以进 入下一轮;如果有多名学生得分相同都是第一名,则可同时进入下一轮。 输入:按顺序给出一个小组10个人的最后得分(int)。 输出:能够出线的学生序号(0~9)。 #include 自测1 试题 1.第1题单选题已知小写字母的ASCII码为97,对于int a=99, b='b'; printf(“%c,%d”, a , b);的结果是 A、99, b B、c, 98 C、99, 98 D、c, b 标准答案:B 您的答案:B 题目分数:5 此题得分:5.0 批注: 2.第2题单选题下述语句的输出为 int m=-1; printf(“%d,%u,%o”,m,m,m); A、-1,-1,-11 B、-1,32767,-177777 C、-1,32768,177777 D、-1,65535,177777 标准答案:D 您的答案:D 题目分数:5 此题得分:5.0 批注: 3.第3题单选题设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是 A、7 B、8 C、9 D、10 标准答案:C 您的答案:C 题目分数:5 此题得分:5.0 批注: 4.第4题单选题假定x和y为double型,则表达式x=2,y=x+3/2的值是 A、3.500000 B、3 C、2.000000 D、3.000000 标准答案:D 您的答案:D 题目分数:5 此题得分:5.0 批注: 5.第5题单选题若有定义:“int a=8,b=5,c;”,执行语句“c=a/b+0.4”后,c的值为 A、1.4 B、1 C、2.0 D、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,2 B、3,3,2 C、3,3,3 D、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=5 B、a=5 b=8 中国石油大学(华东)智慧树知到“计算机科学与技术” 《程序设计(C语言)》网课测试题答案 (图片大小可自由调整) 第1卷 一.综合考核(共15题) 1.下列描述中不正确的是() A.字符型数组中可以存放字符串 B.可以对字符型数组进行整体输入、输出 C.可以对整型数组进行整体输入、输出 D.不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 2.在执行int a[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是() A.3 B.4 C.0 D.2 3.执行下面程序,输出的结果为() A.4,3,2 B.3,3,2 C.3,3,3 D.3,2,2 4.若有说明语句:char c=‘\64’; 则变量C包含:() A.1个字符 B.2个字符 C.3个字符 D.说明不合法,C值不确定 5.用数组名作为函数调用时的实参,则实际传递给形参的是() A.数组的第一个元素值 B.数组中全部元素值 C.数组的首地址 D.数组的元素个数 6.以下选项中非法的表达式是() A.(a+2)++ B.i=j==1 C.(char)(65+10) D.x=x-1 7.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是() A.2 B.3 C.4 D.无法确定; 8.在“while(!a)”中,其中“!a”与表达式()等价。 A.a==0 B.a==1 C.a!=1 D.a!=0 9.在C语言中,字符型数据在内存中的存储形式是() A.原码 B.补码 C.反码 D.ASCII码 10.以下选项中合法的用户标识是() A.long B._2Test C.3Dmax D.A.dat 第三次在线作业 单选题共20道题 收起 1.2.5分在C语言中,当函数调用时; A、A. 实参和形参各占一个独立的存储单元 B、B. 实参和形参共用存储单元 C、C. 可以由用户指定实参和形参是否共用存储单元 D、D. 由系统自动确定实参和形参是否共用存储单元 我的答案:A 此题得分:2.5分 2.2.5分以下函数调用语句中实参的个数为; excev1,v2,v3,v4,v5,v6; A、A. 3 B、B. 4 C、C. 5 D、D. 6 我的答案:A 此题得分:2.5分 3.2.5分如果在一个函数的复合语句中定义了一个变量,则该变量; A、A. 只在该符合语句中有效,在该符合语句外无效 B、B. 在该函数中任何位置都有效 C、C. 在本程序的原文件范围内均有效 D、D. 此定义方法错误,其变量为非法变量 我的答案:A 此题得分:2.5分 4.2.5分 C语言允许函数值类型缺省定义,此时该函数值隐含的类型是; A、A. float型 B、B. int型 C、C. long型 D、D. double型 我的答案:B 此题得分:2.5分 5.2.5分 C语言规定,函数返回值的类型是由; A、A. return语句中的表达式类型所决定 B、B. 调用该函数时的主调函数类型所决定 C、C. 调用该函数时系统临时决定 D、D. 在定义该函数时所指定的函数类型决定 我的答案:D 此题得分:2.5分 6.2.5分在C语言程序中,以下描述正确的是; A、A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B、B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C、C. 函数的定义和函数的调用均不可以嵌套 D、D. 函数的定义和函数的调用均可以嵌套 我的答案:B 此题得分:2.5分 7.2.5分以下叙述中正确的是; A、A. 全局变量的作用域一定比局部变量的作用域范围大 B、B. 静态static类别变量的生存期贯穿于整个程序的运行期间 C、C. 函数的形参都属于全局变量 D、D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值 我的答案:B 此题得分:2.5分 8.2.5分以下程序的运行结果是; include< stdio_h> void subint s,int y { static int t=3; y=st;t--; } main { int a={1,2,3,4},i,x=0; fori=0;i< 4;i++{ suba,x;printf"%d",x;} printf"\n"; } A、A.1234 B、B.432l C、C.0000 1、若有定义语句“int a, b, c *p=&c;”,则以下选项中能正确执行的语句是(C )。 A、scanf(“%d”, a, b, c); B、scanf(“%d%d%d”, a, b, c); C、scanf(“%d”, p); D、scanf(“%d”, &p); 2、已知x=43, ch=‘A’, y=0, 则表达式(x>=y&&ch<‘B’&&!y)的值是(C )。 A、0 B. 语法错误 C. 1 D. “假” 3、如果a=1, b=2, c=4, d=3, 则条件表达式a>b?a:c>d?c:d的值为(D )。 A. 1 B. 2 C. 3 D. 4 4、若k为整型变量,则以下循环执行次数是( B )。 k=2; while(k==0) printf(“%d”,k); k--; printf(“\n”); A. 无限 B. 0次 C. 1次 D. 2次 5. 下列程序段哪个说法正确( D )。 for(t=1; t<=100; t++) { scanf(“%d”, &x); if(x<0) continue; printf(“%3d”, t); } A. 当x<0时整个循环结束 B. x>=0时什么也不输出 C. printf函数永远也不执行 D. 最多允许输出100个非负整数 6. 以下程序的执行结果是: void main() { char ch; int k = 0; for(ch=‘A’; ch<‘H’; ch++, k++) if(k%2==0) printf(“%c”, ch); } Key: A C E G 7. 以下程序输入两个整数,按从大到小的顺序进行输出。 void main() { int x, y, z; scanf(“%d, %d”, &x, &y); if( [1] ) { z=x; [2] ; } 第一次在线作业 单选题(共22道题) 收起 1.( 2.5分)一个C语言程序总是从()开始执行。 A、A. 主过程 B、B. 主函数 C、C. 子程序 D、D.主程序 我的答案:B 此题得分:2.5分 2.(2.5分)以下叙述不正确的是:()。 A、A. 在C程序中,语句之间必须要用分号" ;" 分隔 B、B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C、C. 在C程序中,无论是整数还是实数都能正确无误地表示 D、D. 在C程序中,%是只能用于整数运算的运算符 我的答案:C 此题得分:2.5分 3.(2.5分)以下不正确的C语言标识符是()。 A、A. ABC B、B. abc C、C. a_bc D、D. ab.c 我的答案:D 此题得分:2.5分 4.(2.5分)下列字符串是标识符的是:()。 A、A. _HJ B、B. 9_student C、C. long D、D. LINE 1 我的答案:A 此题得分:2.5分 5.(2.5分)以下说法中正确的是()。 A、A. C语言程序总是从第一个定义的函数开始执行 B、B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C、C. C语言程序总是从main()函数开始执行 D、D. C语言程序中的main()函数必须放在程序的开始部分 我的答案:C 此题得分:2.5分 6.(2.5分)在C语言中,字符型数据在内存中以()形式存放。 A、A. 原码 B、B. BCD码 C、C. 反码 D、D. ASCII码 我的答案:D 此题得分:2.5分 7.(2.5分)若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。 A、A. 2.500000 B、B. 2.750000 C、C. 3.500000 D、D. 0.000000 我的答案:A 此题得分:2.5分 8.(2.5分)设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为()。 A、A. float B、B. char C、C. int D、D. double 2022年中国石油大学(北京)公共课《C语言》科目期末试卷A(有 答案) 一、填空题 1、设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。 2、结构化程序由________、________ 、________ 3种基本结构组成。 3、C语言源程序的基本单位是________ 4、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式.pow (y,fabs(x))的值为_______ 5、运算符%两侧运算量的数据类型必须都是_______;运算符++和一一的运算量必须是_______。 6、若有以下定义和语句,则在程序中可通过指针pt,用*(pt[i]+j)等4种形式引用数组元素x[i][],另3种形式分别是:_______、_______和_______。(假设ij已正确说明并赋值。) int x[10][6],(*pt)[6]; pt=x; 7、函数swap(arr,n)可对arr数组从第1个元素到第n个元素分别进行两两元素交换。在运行调用函数中的如下语句后,a[o]和a[1]的值分别为_______,原因是_______。 a[0]=1;a[1]=2;swap(a,2); 8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。 _______;a=b;b=c;_______; 9、已有定义int a;float b,x;char cl,c2;为使a=3、b=6.5、x=12.6、 cl='a'、c2='A',正确的scanf函数调用语句是_______,数据输入的形式应为 _______。 10、在C语言中,二维数组元素在内存中的存放顺序是_______。 二、选择题 11、若x、i、j和k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为( )。 A.4 B.16 C.32 D.52 12、对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是( ) 13、已有定义intx;floaty;且执行scanf("%3d%f”,&x,&y);语句,若从第一列开始输入数据12345口678<回车>,则 y的值为( )。(注:口表示空格) A.无定值 B.45.000000 C.678.000000 D.123.000000 14、根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为。(注:口表示空格) #include 2022年西安石油大学公共课《C语言》科目期末试卷B(有答案) 一、填空题 1、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。 char cl,c2; scanf("%4c%4c",&cl,8&c2); 2、C语言源程序的基本单位是________ 3、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是 4、假设变量a、b均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为_______。 5、若有定义语句:inte=1,f=4,g=2;float m=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是_______。 6、设有char a,b;若要通过a&b运算屏蔽掉a中的其他位,只保留第2和第8位(右起为第1位),则b的二进制数是_______。 7、执行下面程序段后,k的值是_______。 k=1;n=263; do{k*=n%10;n/=10;} while(n); 8、下面程序段的运行结果是_______。 int i=5;char c[6]="abcd"; do{c[i]=c[i-1];}while(--i>0); puts(c); 9、设有宏定义如下: #define MIN(x,y)(x)>(y)?(x):(y) #define T(x,y,r)x*r*y/4则执行以下语句后,s1的值为_______,s2的值为_______。 int a=1,b=3,c=5,s1,s2; s1=MIN(a=b,b-a); s2=T(a++,a*++b,a+b+c); 10、若有以下定义和语句,在程序中可通过指针数组p,用*(p[i]+j)等4种形式引用数组元素s[i][j],另3种形式分别是:_______、_______和_______。(假设i、j已正确说明并赋值。) int s[10][6],*p[10]; for(i=0;i<10;i++)p[i]=s[i]; 二、选择题 11、C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符( ) A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母、数字和下划线中任一种字符 12、若有说明语句:charc='\72';则变量c( )。 A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法,c的值不确定 13、一个C程序的执行是从() A.本程序的main函数开始,到main函数结束 B.本程序的第一个函数开始,到本程序文件的最后一个函数结束 2022年中国石油大学(华东)公共课《C语言》科目期末试卷A(有 答案) 一、填空题 1、请读程序段: unsigned a=16; printf("%d,%d,%d\n",a>>2,a=a>>2,a);以上程序段的输出结果是_______。 2、C语言源程序文件的后缀是;经过编译后,生成文件的后缀是;经过连接后,生成文件的后缀是 3、结构化程序由________、________ 、________ 3种基本结构组成。 4、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式.pow (y,fabs(x))的值为_______ 5、若有定义语句:ints=6;则表达式s%2+(s+1)%2的值为_______ 6、定义语句int*f();int(*f)();的含义分别为_______和_______。 7、下面程序段中循环体的执行次数是_______。 a=10;b=0; do{b+=2;a-=2+b;}while(a>=0); 8、假设变量a、b和c均为整型,以下语句借助中间变量t把a、b和c中的值进行交换,即把b中的值给a,把c中的值给b,把a中的值给c。例如:交换前,a=10、b=20、c=30;交换后,a=20、b=30、c=10。请填空。 _______;a=b;b=c;_______; 9、设有如下结构体说明: {int a;float b; struct ST*c; doublex[3]; }st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。 _______ 10、下面程序wdm的运行结果是_______。 int i,x[10]={2,3,0,3,0,2,3,2,1,3},y[4]={0}; for(i=0;i<10;i++)y[x[i]]++; printf("%d\n",y[3]); 二、选择题 11、设有说明语句:char w;intx;float y;double z;则表达式w*x+z-y值的 数据类型为()。 A.float. B.char C.int D.double 12、若有说明语句:charc='\72';则变量c( )。 A.包含1个字符 B.包含2个字符 C.包含3个字符 D.说明不合法,c的值不确定 13、设有以下程序: #include 《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〕 5 5. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是< > A〕a&&b B〕a<=b C〕a||b+c&&b-c D〕!<&&!c||1> 6. 以下不合法的赋值语句是< > A〕x=<1,y=2>; B〕++x; C〕x=y=15; D〕y=int 中国石油大学(华东)C语言在线测评答案第10章字符串(2013级亲测正确) 10.1 字符转换 描述提取一个字符串中的所有数字字符(‘0’...‘9’)将其转换为一个整数输出。 输入一个以回车符为结束标志的字符串(少于80个字符)。 输出把字符串中的所有数字字符 (‘0’...‘9’)转换为一个整数并输出。 #include 输入:两个已经排好顺序(升序)的字符串 输出:一个合并在一起的有序(升序)的字符串 要求:设计一个效率尽量高的算法,对每个字符串只扫描一遍就可以了。 如果采用先进行串连接,然后再进行 排序的算法,则效率太低了。 #include 程序题 第六章 1.编写函数,求出能整除x且是偶数的各整数,并按从小到大的顺序依次存放在y数组中,这些数的个数通过函数值返回主调函数。例如输入 60 则应输出 2 4 6 10 12 20 30 60 请将下面的程序复制粘贴到VC中,完善函数fun的函数体,运行正确后,再将完整的程序复制粘贴到填写答案处。 } #include "stdio.h" int fun(int x,int y[]) { } main() { int x,a[100],n,i; scanf("%d",&x); n=fun(x,a); for(i=0;i 2.编写函数,求一组数中最大值出现的位置(如果最大值出现多次,求出第一次出现的下标)。请将下面的程序复制粘贴到VC中,完善函数fun的函数体,运行正确后,再将完整的程序复制粘贴到填写答案处。 #include "stdio.h" int fun(int a[],int n) { } main() { int a[100],n,i; scanf("%d",&n); for(i=0;i 《C语言程序设计》期末复习题 一、选择题 1.能将高级语言编写的源程序转换成目标程序的是() A.链接程序 B.解释程序 C.编译程序 D. 编辑程序 2. 设 a 为整型变量,则不能正确表达数学关系10<a< 15的 C语言表达式是()。 A. 1010&&a<15 D.!(a<=10)&&!(a>=15) 3.当调用函数时,实参是一个数组名,则向函数传送的是( ) 。 A. 数组的长度 B.数组的首地址 C. 数组每一个元素的地址 D.数组每个元素中的值 4.执行下面的程序段后,k 的值是() int k=1,n=325; do { k*=n%10;n/=10;}while(n); A. 3 B. 30 C. 523 D. 325 5.若有以下数组说明,则i=6;a[a[i]]元素数值是()。 int a[12]={1,4,7,10,2,5,8,11,3,6,9,12}; A.3 B.8 C.6 D.5 6.若变量已正确定义,要求程序段完成求5! 的计算,不能完成此操作的程序段是() A. for(i=1,p=1;i<=5;i++) p*=i; B. for(i=1;i<=5;i++){ p=1; p*=i;} C. i=1;p=1;while(i<=5){p*=i; i++;} D. i=1;p=1;do{p*=i; i++; }while(i<=5); 7.若有: int a[][3]={{1,2,3},{4,5},{6,7},{8}};则数组 a 的第一维的大小为 : ( ) A. 12 B. 3 C. 4 D.无确定值 8.设有如下程序段,则执行 p=s; 语句后,以下叙述正确的是 ( ) 。 char s[20]=“ Bejing” ,*p; p=s; A.可以用 *p 表示 s[0] B. s 数组中元素的个数和p 所指字符串长度相等 【设计型】5.1 输出一行星号 编写程序在一行中输出N 个星号。 输入:N值 输出:一行中N个星号 #include 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 中国石油大学c语言上机题答案大全(2013版) 最全最详细 1.1 Hello world. 让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一: #include #include 1.1 Hello world. 让我们用C语言向世界问好。 最早的程序基本是这个样子的: 程序一: #include 2018年石油大学(华东)C语言在线考试答案
中国石油大学(华东)C语言在线测评答案 第8章数组(2013级亲测正确)
中国石油大学华东现代远程教育C语言
中国石油大学(华东)智慧树知到“计算机科学与技术”《程序设计(C语言)》网课测试题答案1
中石大C语言程序设计第次在线作业答案
西安石油大学C语言考试题
中国石油大学C语言程序设计第一册在线作业答案
2022年中国石油大学(北京)公共课《C语言》科目期末试卷A(有答案)
2022年西安石油大学公共课《C语言》科目期末试卷B(有答案)
2022年中国石油大学(华东)公共课《C语言》科目期末试卷A(有答案)
石油大学-C语言-在线考试附答案
中国石油大学(华东)C语言在线测评答案 第10章字符串(2013级亲测正确)
东北石油大学c语言程序题
中国石油大学《C语言程序的设计》期末复习试题与答案
中国石油大学华东C语言答案全集
中国石油大学C语言上机题答案(2013版)答案_最全最详细
大一石油大学c语言网络作业答案