《C语言程序设计基础》 试卷A及参考答案
《c语言程序设计基础》试卷 (A卷)考试时间:90分钟闭卷任课老师:班级:学号:姓名:成绩:(每小题2分,共30分)、由C++源文件编译生成的目标文件的缺省扩展名为()A、cppB、exeC、objD、lik、下列中,不是C++合法的标识符()A、2mnB、m123C、kkD、a_1、C++中,基本数据类型不包括()A、intB、floatC、charD、class、x和y均为bool量,则x| |y为真的条件是()A、它们均为真B、其中一个为真C、它们均为假D、其中一个为假、C++中,一个字符型数据在内存中占()字节。
A、4B、2C、1D、8、字符串常量”hello”的长度是()A、5B、6C、7D、8、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为()A、2,3,2,2B、2,3,3,3C、2,2,3,3D、3,3,2,2、假定a为一个整型数组名,则元素a[4]的字节地址为()A、a+4B、a+8C、a+16D、a+32、 x>0 || y==5的相反表达式为()。
A、 x<=0 || y!=5B、 x<=0 && y!=5C、 x>0 || y!=5D、 x>0 && y==5 、在下面的函数声明中,存在着语法错误的是()A、void BC(int a , int)B、void BD(int , int)C、void BE(int , int=5)D、int BF(int x ; int y)、循环体至少被执行一次的语句为()。
A、for循环B、while循环C、do循环D、任一种循环、已知一函数中有下列变量定义,其中属于静态变量的是()A、int a=5;B、static double b;C、register char c;D、auto short d;13、do语句能够改写为()语句。
A、复合B、ifC、switchD、 while14、要使语句: p=new int[10]; 能够正常执行,p应定义为()A、int p;B、int p[10];C、int *p;D、int (*p)[10];15、编写C++程序一般需经过的几个步骤依次是( )。
A、编译、编辑、连接、调试B、编辑、编译、连接、调试C、编译、调试、编辑、连接D、编辑、调试、编辑、连接二、填空题(每小题1分,共10分)1、使用const 语句定义一个标识符常量时,则必须对它同时进行。
2、用于输出表达式值的标准输出流对象是_________,用于从键盘上为变量输入值的标准输入流对象______。
3、在每个C++程序中都必须包含有这样一个函数,该函数的函数名为。
4、在C++语言中,用转义字符序列或操纵符表示输出一个换行符。
5、假定一个枚举型的定义为”enum RB{ab,ac=3,ad,ae}x=ad;”,则x的值为。
6、设px是指向一个类动态对象的指针变量,则执行“delete px;”语句时,将自动调用该类的。
7、关系表达式x+y>5的相反表达式为8、空串的长度为___,存储它需要占用___个字节。
9、表达式: x=625,i=(x>100?10:100) 的值是。
10、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。
三、写出下列每个函数的功能(每小题4分,共20分)1、#include<math.h>bool SG(int x) {/ /x为大于等于2的整数int a=int(sqrt(x));/ /取x的平方根int i=2;while(i<=a) {if(x%i= =0) break;i+ +;}if(i<=a)return 0;else return 1;}2、#include <iostream.h>int SC(int a,int b,int c){if(a>=b && a>=c) return a;if(b>=a && b>=c) return b;if(c>=a && c>=b) return c;}3、#include <math.h>bool SG(int x){int a=int(sqrt(x));int i=2;while(i<=a){if(x%i==0) break;i++;}if (i<=a) return 0;else return 1;}4、int SC(int a,int b,int c) {if(a>=b && a>=c) return a;if(b>=a && b>=c) return b;if(c>=a && c>=b) return c;}四、阅读下列程序,在处填入适当内容,使程序完整(每个空1分,共10分,)1、下面函数是求两个整型参数a和b的最小公倍数。
int f2(int a, int b){int i=2, p=1;do {while(a%i==0 && ___(1)___) {p*=i; a/=i; b/=i; }___(2)___;}while(a>=i && ___(3)___);return p*a*b; }2、打印出2至99之间的所有素数(即不能被任何数整除的数)。
#include<iostream.h>#include<math.h>void main(){int i,n;for(n=2; ___(1)___; n++) {int temp=int(sqrt(n)); //求出n的平方根并取整for(i=2; ___(2)___; i++)if(n%i==0) ___(3)___;if(i>temp) cout<<n<<' '; }cout<<'\n';}3、采用辗转相除法求出两个整数的最大公约数。
#include<iostream.h>void main(){int a,b;cout<<"请输入两个正整数:";cin>>a>>b;while(a<=0 || __(1)___) {cout<<"重新输入:"; cin>>a>>b;} while(b) {int__(2)__;r=a%b;___(3)___; ___(4)___; //分别修改a和b的值} cout<<a<<endl; //输出最大公约数 }五、写出下列程序的运行结果(每小题5分,共30分)1、main ( ){ int a=4,x=5,b=8;fun(b,6);printf("%d,%d,%d\n",a,b,x);}fun (int a,int b){ int x=3;printf("%d,%d,%d\n",a,b,x);}运行结果:2、#include<iostream、h>void SB(char ch){switch(ch){case 'A':case 'a':cout<<"well!";break;case 'B':case 'b':cout<<"good!";break;case 'C':case 'c':cout<<"pass!";break;default:cout<<"bad!";break;}}void main(){char a1='b',a2='C',a3='f';SB(a1);SB(a2);SB('A');cout<<endl;}运行结果:3、#include<iostream、h>#include<stdlib、h>double SD(int a,int b,char op){ double x;switch(op){case '+':x=double(a)+b;break;case '-':x=double(a)-b;break;case '*':x=double(a)*b;break;case '/': if (b) x=double(a)/b;else exit(1);break;default:exit(1);}return x;}void main(){int x=20,y=12;cout<<SD(x,y,'-')<<' ';cout<<SD(x,y,'*')<<' ';cout<<SD(x+y,y-2,'/')<<endl;} 运行结果:4、#include<iostream、h>void main(){int s=0;for(int i=1;i<6;i++)s+=i*i;cout<<"s="<<s<<endl;}运行结果:5、 main( ){ int x=7,y;if(x<5) y=x;else if(x<10) y=2*x+1;else y=3*x-1;printf(“%d\n”,y);}运行结果:6、 main( ){int i,j;for(i=1;i<=3;i++){for(j=1;j<=i;j++)printf(“%d”,j);printf(“\n”);}}运行结果:以下为本试卷的参考答案一、选择题(30分,每小题2分)1、( C )2、( D )3、( D )4、( A )5、( C )6、( B )7、( A )8、( A )9、( B ) 10、( B )11、( C ) 12、( B ) 13、( D ) 14、( C ) 15、( B )二、填空题(10分,每小题1分)1、声明2、 cout、cin3、 main4、‘\n’,endl5、 46、动态内存7、x+y<5||x+y==58、 0 19、10 10、; {}三、写出下列每个函数的功能(20分,每小题4分)1.判断整数x是否为质数,若为质数返回true,若不是则返回false。
谭浩强C语言程序设计基础课后题答案.doc
课后题答案第一章程序设计基本概念习题分析与解答1.1 【参考答案】.EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=10, a2=10;或float a1=1, a2=1;(系统将自动把1转换为10)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]0或12.25 【参考答案】[1]8 [2]127 [3]-128 [4]111111112.26 【参考答案】[1]32767 [2]-32768 [3]11111111111111112.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
(2) include程序行中后面的stdio.h是一个文件名,按规定,文件名应当放在一对双引号(″″)内,或放在一对尖括号(< >)内。
大学《C语言》试题及参考答案
(2)编写程序输出1-1000之间能够被5整除的所有整数,并求出这些整数的和输出。
(3) 从键盘输入10个正的整数,找出其中的素数输出。
答: #include#includeint f(int x){int i;for(i=2;i<=sqrt(x);i++)if(x%i==0) return 0;return 1}void main(){int a[10],i,n=0,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)if( f(a[i]) n++;else a[i]=0;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if( a[j]<A[J+1] ) {t=a[j];a[j]=a[j+1];a[j+1]=t;}printf("共有%d个素数,它们是:",n);(4)编写程序打印下列图案答:#include "stdio.h"void main() {for (int i = 0;i <= 4;i++) {for (int j = 0;j <= i;j++) { printf("*");}printf("\n");}}(5)写一个函数计算一个字符串的长度,再写一个测试函数测试其功能。
不允许使用strlen函数答:#include "stdio.h"void convert(char *str){for (int i = 0; str[i] != '\0'; i++) {if (str[i] >= 'A' && str[i] <= 'Z') {str[i] = str[i] - 'A' + 'a';}}}int main(){char str[20] = "aZcdABxDEF123";convert(str);printf("%s\n", str);return 0;}(6)从键盘上任意输入50个整数存放在a数组中,找出a数组中所有偶数存放在数组b 中,并对b数组的值按降序排列。
第一学期《C程序设计》考试A(级)含答案
A) char str[ ]=”China”; p=str[0]; B) scanf(“%s”, p);
C) p=getchar();D) p=”string”;
16.阅读以下程序
#include<stdio.h>
B) struct student{ char name[20]; char sex; int age;} struct student s1;
C) struct student{ char name[20]; char sex; int age;} s1;
D) struct { char name[20]; char sex; int age;} s1;
A)k++B)k+=1C)++kD)k+1
11.以下叙述中正确的是【 】
A)break语句只能用于switch语句体中
B)continue语句的作用是:使程序的执行流程跳出包含它的所有循环
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
6.对于一个正常运行的C程序,以下叙述中正确的是【 】
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始,在程序的最后一个函数中结束
D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
A)大写字母B)连接符C)数字字符D)下划线
4.以下不合法的用户标识符是【 】
C语言程序设计基础测试试卷答案
《C语言程序设计基础》测试试卷答案一、填空题(每空2分,共20分)1.定义变量bi并赋初值为33的语句为。
2.c语言中一个程序行上可以写。
3.与数学表达式,5=<x <19等价的c语言表达式为。
4.定义符号常量PT为109的命令为。
5.以知有定义int a,b,c;a=b=c=3;则表达式a++||++b>=4&&c =4运算后,c的值为。
6.字符串"abcd"在内存中的长度为。
7.c语言中,以形式来存储字符。
8.变量ch是小写字母,把它转换为大写字母的表达式是。
9.c语言的基本数据类型有整型,实型和。
10.c语言的基本组成单位是。
二、选择题(每题2分,共40分)1.下面不合法的整型常量是()A) 1919 B) 0990 C)1010 D)0xe0f72.C语言程序的基本组成单位是()A)语句B)字符C)程序行D)函数3.已知有int x=5,y=10;语句printf("%d",(x+2,x+y++));的输出结果是( )A)7,17 B)7,15 C)17 D)154.已知有float x,y;下面合法的表达式是()A)-x-- B)y=y-x C)x=y>=x D)y=x%2*25. 下面不能表示逻辑假的是()A) '\0' B)0 C)-0.0 D) '0'6.有※int x,char ch;使用语句scanf(%d,%d,&x,&ch);为x和ch输入25和字符0,正确的输入格式为()A)25 0 B)25'0' C)250 D)25,07.有int x=5;则语句printf("%d",!x+1);输入结果为()A)0 B)1 C)5 D)68.有int a=3;执行语句a+=a-=a*a;有a的值为()A)-9 B)-12 C)9 D)129.下面语句不能实现对变量x的值增1的是()A)x++ B)++x C)x+=1 D)x+110.下面说法正确的是()A)逗号表达式的值是各个表达式值之和。
C语言程序设计试题及答案
《C语言程序设计》(卷)考核班级学生数印数考核方式闭卷考核时间120 分钟(本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由()组成的。
A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是()。
A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b) printf ( “------------“) ;的正确说法是()。
A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出-----------4.若x、y、z均为int 型变量,则执行下列语句后的z值为()。
x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为()。
A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是()。
A.’A’B.’D’的ASCⅡ码C.65 D.37.语句char str[20];说明str是一个字符串,最多能表示()。
A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是()。
A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是()。
A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是()。
A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是()。
一学期《C程序设计》试卷A(级)含答案
16.阅读以下程序
#include <stdio.h>
voidmain()
{intcase。float printF。
printf(“请输入2个数:”)。
scanf(“%d%f”, &case, &printF)。
printf(“%d %f”, case, printF)。
C) struct student{ char name[20]。char sex。int age。} s1。
D) struct { char name[20]。char sex。int age。} s1。
15.设有定义:char *p。以下选项中能够使字符型指针p正确指向一个字符串的是:【 】
A) char str[]=”China”。p=str[0]。B) scanf(“%s”, p)。
19.以下数组定义中错误的是【 】
A)int x[][3]={0};
B)int x[2][3]={{l,2},{3,4},{5,6}};
C)int x[][3]={{l,2,3},{4,5,6}};
D)int x[2][3]={l,2,3,4,5,6};
20.定义数组int a[10],若整型类型变量长度是2个字节,数组a的首地址是0,则&a[5]的值是:【 】
C)break语句只能用在循环体内和switch语句体内
D)在循环体内使用break语句和continue语句的作用相同
12.在C语言中,函数返回值的类型最终取决于【 】
A)函数定义时在函数首部所说明的函数类型
B)return语句中表达式值的类型
C)调用函数时主函数所传递的实参类型
C语言程序设计基础试题一及答案
C语⾔程序设计基础试题⼀及答案《程序设计基础》考试试卷⼀班级姓名学号____________⼀、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可⾏性(D)确定性2.以下选项中可作为C语⾔合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)⽤C语⾔实现的算法必须要有输⼊和输出操作(B)⽤C语⾔实现的算法可以没有输出但必须要有输⼊(C)⽤C程序实现的算法可以没有输⼊但必须要有输出(D)⽤C程序实现的算法可以既没有输⼊也没有输出4.以下不能定义为⽤户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运⾏后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运⾏后的输出结果是(A) (B) (C) (D)8.有以下语句: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);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输⼊数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输⼊是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运⾏后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运⾏后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
《C语言程序设计基础》教材参考题答案_20140211【范本模板】
word完美格式《C语言程序设计基础》教材参考答案包括各单元:一.随堂练习二.单元总结三.单元练习四.实训指导单元一程序设计宏观认识一.随堂练习【随堂练习1—1】1.根据上述示例模仿编程,输入正方形的边长,计算其面积。
#include <stdio。
h〉void main( ){ int a,s; //数据准备,边长a,面积sprintf(”请输入正方形的边长:");scanf(”%d”,&a); //数据输入s=a*a;//数据计算printf("该正方形的面积为:%d.\n",s);}【随堂练习1—2】1.下面哪些标识符属于合法的用户自定义标识符:Main、void、_num、my$、a*、N4、3m、a—2答:合法的用户自定义标识符是:Main、_num、N42.结合【例1。
2】指出程序代码中所用到的标识符哪些是关键字,哪些是预定义标识符,哪些是用户自定义标识符.答:关键字:void、int预定义标识符:include、main、printf、scanf用户自定义标识符:a、b、c3.分析【例1。
2】中函数的结构,包括函数首部(函数返回值类型、函数名、形式参数)、函数体语句(说明语句、可执行语句)。
答:函数首部: void main(),其中函数返回值类型为void、函数名为main、形式参数无;函数体语句:{}内的语句为函数体,其中:说明语句为int a,b,c;,其余为可执行语句。
【随堂练习1—3】1.在VC++6.0环境中完成【例1.2】程序开发过程.(略)2.查阅【例1。
2】所对应的工程文件夹,了解相关文件的含义。
工程文件夹中:。
CPP:用C/C++语言编写的源代码文件。
DSP:VC开发环境生成的工程文件,VC4及以前版本使用MAK文件来定义工程。
项目文件,文本格式。
DSW:VC开发环境生成的WorkSpace文件,用来把多个工程组织到一个WorkSpace中。
《C语言程序设计基础》期末考试A卷及答案
封 线密《C 语言程序设计基础》课程期末考试试卷 ( A 卷)班级 考试形式 闭卷 考试时间 120 分钟考试学期 2020-2021学年第1学期 考试类型 考试 命题教师 题 号一 二 三 四 总分 分 值 30 20 25 25 100 得 分一、单项选择题(每小题2分,共30分)1.下列不属于C 语言基本数据类型的是( )。
A. intB. unionC. charD. double 2. 在一个C 程序中( )。
A .main 函数必须出现在所有函数之前B .main 函数可以在任何地方出现C .main 函数必须出现在所有函数之后D .main 函数必须出现在固定位置3. 以下不正确的C 语言标识符是 ( )。
A .AB3CB .a_bc C. _abc D .3ab_c4. 设x 、y 和z 是int 型变量,且x =3,y =4,z =5,则下面表达式中值为0是 ( )。
A .x&&y||x-y B. x <=y C. x||y+z&&y<z D. !((x <y)&&!z||1)5. 设有定义:struct a{long int c[4]; float d[3]; char f[16]; }a1;则printf("%d\n",sizeof(a1));的输出是( )。
A .44B .36C .12D .326. 已知一个二维数组int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};获取该数组中第二行第三列元素的语句表达正确的是( )。
A .a[2][3] B. a[2][4] C. a[1][2] D. a[3][2] 7. 设有:int a,*pa,*pb;int b[10] = { 0,1,2,3,4,5,6,7,8,9 };a=3;下列说法中不正确的是( )。
华农-2015学年第1学期C语言A卷参考答案
C参考答案2015学年第1学期考试科目:C语言程序设计一、单项选择题(机读,每小题2分,共40分)二、判断题(机读,正确的判断涂黑“A”、错误的判断涂黑“B”每小题1分,共20分)三、阅读程序填空题(每空1分,共20分)四、编写程序题(每小题各10分,共20分)1.#include <stdio.h>#include <string.h>int main(){ char str1[80],str2[80],str3[80],temp[80];int i;printf("Input 3 Strings:\n");gets(str1); //输入3个字符串gets(str2);gets(str3);if(strcmp(str1, str2) > 0) //如果str[0]>str[1], 交换它们的值 { strcpy(temp, str1);strcpy(str1, str2);strcpy(str2, temp);}if(strcmp(str1, str3) > 0) //如果str[0]>str[2], 交换它们的值 { strcpy(temp, str1);strcpy(str1, str3);strcpy(str3, temp);}if(strcmp(str2, str3) > 0) //如果str[1]>str[2], 交换它们的值 { strcpy(temp, str2);strcpy(str2, str3);strcpy(str3, temp);}printf("After sorted: \n");puts(str1); //输出排序后的3个字符串puts(str2);puts(str3);return 0;}2.#include <stdio.h>#include <math.h>main(){ int i,temp,rmd,sum;for(i=100; i<=999; i++){ temp=i; sum=0;while(temp>0){ rmd=temp%10;sum+=pow(rmd,3); //此处若不会使用pow函数,可以用连乘替代。
