C语言模拟考试

合集下载

c语言基础知识复习题模拟试题

c语言基础知识复习题模拟试题

c语言基础知识复习题模拟试题c语言是一种广泛使用的计算机编程语言,它以其高效性、灵活性和对硬件的直接控制能力而受到程序员的青睐。

为了帮助学习者复习和巩固c语言的基础知识,以下是一套模拟试题:一、选择题1. C语言中,以下哪个关键字用于声明一个变量?- A. var- B. define- C. int- D. declare2. 以下哪个是C语言的标准输入输出库?- A. <stdio.h>- B. <iostream.h>- C. <io.h>- D. <stream.h>3. 在C语言中,用于定义一个函数的关键字是:- A. function- B. def- C. void- D. return4. 下面哪个选项是C语言中正确的数组定义方式?- A. int array[5] = {1, 2, 3};- B. int [5] array = {1, 2, 3};- C. int array = {1, 2, 3};- D. int array[5] = 1, 2, 3;5. 在C语言中,哪个运算符用于计算两个数的和?- A. +- B. +=- C. ||- D. &&二、填空题1. 一个完整的C语言程序通常以______关键字开始,以main函数作为程序的入口点。

2. 在C语言中,______关键字用于定义一个函数的返回类型。

3. 在C语言中,______是基本数据类型之一,用于存储字符。

4. 一个C语言程序中,所有的函数调用必须在______函数中实现。

5. 在C语言中,______运算符用于连接字符串。

三、简答题1. 描述C语言中变量的作用域和生命周期。

2. 解释C语言中指针的概念以及如何声明和初始化一个指针。

3. 简述C语言中结构体的定义和使用。

四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和、差、积、商。

C语言模拟试卷及答案

C语言模拟试卷及答案

C语言程序设计模拟试题一、单项选择题(请把答案填在每个题的括号内,每小题2分,共30分)1.对于一个正常运行的C程序,以下叙述中正确的是()A)程序的执行总是从main函数开始,在main函数结束B)程序的执行总是从程序的第一个函数开始,在main函数结束C)程序的执行总是从main函数开始,在程序的最后一个函数中结束D)程序的执行总是从程序中的第一个函数开始,程序的最后一个函数中结束2.设变量均已正确定义,若要通过scanf("%d%c,%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符'X'和'Y'。

以下所示的输入形式中正确的是()(注:口代表空格字符)A)10X,20Y<回车>B)10口X20口Y<回车>C)10口X<回车>20口Y<回车>D)10X<回车>20Y<回车>3.以下定义语句中正确的是()A)char a='A'b='B';B)float a=b=10.0;C)int a=10,*b=&a;D)float*a,b=&a;4.下列选项中,不能用作标识符的是()A)_main B)a1C)int_2_D)2_int_5.下列选项中,合法的C语言关键字是()A)VAR B)cher C)integer D)default6.为表示关系z≥y≥x,应使用C语言表达式()A)(z>=y>=x)B)(z>=y)AND(y>=x)C)(z>=y)&&(y>=x)D)(z>=y)&(y>=x)7.有以下程序段:int k=0,a=1,b=2;k=a<b?b:a;执行该程序段后,k的值是()A)3B)2C)1D)08.C语言中用于结构化程序设计的三种基本结构是()A)if、switch、break B)顺序结构、选择结构、循环结构C)for、while、do-while D)break、for、continue9.若int i;则语句:for(i=2;i==0;)printf("%d",i--);的循环执行次数是()A)无限次B)0次C)1次D)2次10.在循环结构的循环体中执行break语句,其作用是()A)结束本次循环,进行下次循环B)继续执行break语句之后的循环体中各语句C)跳出该循环体,提前结束循环D)终止程序运行11.已定义int a[10],i;以下能正确为a数组元素进行赋值的语句是()A)for(i=0;i<10;i++)scanf("%d",a[i]);B)for(i=0;i<=10;i++)scanf("%d",a[i]);C)for(i=0;i<10;i++)scanf("%d",&a[i]);D)for(i=1;i<=10;i++)scanf("%d",&a[i]);12.以下能正确定义二维数组的是()A)int a[][3];B)int a[][3]={{2,3},{4}};C)int a[][3]={};D)int a[2][3]={{1},{2},{3,4}};13.s1和s2已正确定义并分别指向两个字符串。

c本科目一模拟考试题

c本科目一模拟考试题

c本科目一模拟考试题# C语言科目一模拟考试题一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable-nameC. variable_nameD. variable-name22. 以下哪个语句是正确的C语言赋值语句?A. int x = y = 10;B. int x = (y = 10);C. int x = y = 10;D. int x = 10, y;3. C语言中,以下哪个是正确的条件语句?A. if (x = 10)B. if x == 10C. if (x == 10)D. if (x == 10) then4. 在C语言中,以下哪个是正确的循环结构?A. do-whileB. while-doC. for-doD. do-until5. 以下哪个函数不能被用来进行字符串的复制?A. strcpyB. strcatC. strncpyD. memcpy6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10];7. C语言中,以下哪个是正确的函数声明?A. int function(int x) { ... }B. int function(int) { ... }C. int function(int x) { ... }D. function(int x) { ... }8. 以下哪个是C语言中的关键字?A. autoB. registerC. voidD. integer9. 在C语言中,以下哪个操作符用于逻辑与?A. &&B. ||C. !D. =10. 以下哪个是C语言标准库中的数学函数?A. sqrtB. powerC. multiplyD. divide二、填空题(每空2分,共20分)11. 在C语言中,`printf`函数用于______数据。

c模拟考试试题及答案

c模拟考试试题及答案

c模拟考试试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的变量名?A. 2variableB. variable2C. variable-twoD. variable_two答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 以下代码段的输出结果是什么?```cint a = 10;printf("%d", a++);```A. 10B. 11C. 9D. 编译错误答案:A4. 在C语言中,以下哪个语句可以正确地实现数组元素的初始化?A. int arr[5] = {0, 1, 2};B. int arr[5] = {0, 1, 2, 3, 4};C. int arr[5] = {0};D. int arr[5] = {0, 1, 2, 3};答案:C5. 下列哪个是C语言中的控制语句?A. ifB. switchC. both A and BD. none of the above答案:C6. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int a, int b);B. int myFunction(int a, int b);C. Both A and BD. None of the above答案:C7. 以下哪个是C语言中的输入函数?A. printf()B. scanf()C. sprintf()D. fprintf()答案:B8. 以下代码段的输出结果是什么?```cfor (int i = 0; i < 5; i++) {printf("%d ", i);}```A. 0 1 2 3 4B. 4 3 2 1 0C. 1 2 3 4 5D. 编译错误答案:A9. 在C语言中,以下哪个是正确的字符串声明?A. char str[10] = "Hello";B. string str = "Hello";C. char str = "Hello";D. string str[10] = "Hello";答案:A10. 以下哪个选项是C语言中的逻辑运算符?A. &&B. ||C. Both A and BD. None of the above答案:C二、填空题(每空2分,共20分)1. 在C语言中,一个基本的数据类型可以是______、______或______。

C语言-模拟考试题

C语言-模拟考试题

C语言模拟试题选择题(1)1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是:A. &c[3]B. pc[3]C. pc+2D. &c2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:A. 5B. 7C. 3D. 43设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:struct student{char name[20];int age;char sex;}stu[5], *p;p=stu;A. scanf("%s", stu[0].name);B. scanf("%d", p->age);C. scanf("%c", &p->sex);D. scanf("%d", &stu[0].age);4若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:A. 0B. 1C. 2D. 35若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:A. 4B. 2C. 6D. 86若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a<b?a:c<d?c:d的值为:A. 1B. 2C. 3D. 47putchar()函数可以向终端输出一个:A. 整型变量表达式值B. 实型变量值C. 字符串D. 字符或字符型变量值8下列各语句中正确定义了数组的是:A. int a[5],b[2,3];B. char str(30);C. int x[];D. int x[5]={1,2,3};9将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是:A. c= =(a>b)? a:b;B. c=(a>b)?a:b;C. c=if(a>b)a else b;D. (a<b)?c=a:c=b;10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:A. 1B. 2C. 2.0D. 2.511以下语句或语句组中,能正确进行字符串赋值的是:A. char s[10]; s="right!";B. char *sp="right!";C. char s[10]; *s="right!"D. char *sp; *sp="right!";12若int a[ ][4]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:A. 1B. 2C. 3D. 无确定值13若要求以下程序的输出结果是a=5,b=4,则输入数据的形式应该是:#include “stdio.h”main(){ int a,b;scanf("%d,b=%d",&a,&b);printf("a=%d,b=%d",a,b); }A. 5 4B. 5,4C. 5 b=414以下运算符中,优先级最高的是:A. <=B. &&C. =D. ++15以下对C语言函数的描述中,不正确的是:A. C语言中,函数可以嵌套定义B. C语言中,函数可以递归调用C. C语言中,函数可以没有返回值D. C语言程序由函数组成16若有以下定义和语句,则不能访问数组元素的表达式是:int i=2,*p,a[ ]={1,2,3,4,5};p=a;A. *(a+i)B. a[p-a]C. p+iD. *(&a[i])17C语言中NULL表示:A. 空指针B. 变量未找到C. 字符串的结束符D. 文件的结束符18以下程序的运行结果是:#include "stdio.h"main()if (m++>5) printf("%d\n",m);else printf("%d\n", m--);}A. 4B. 5C. 6D. 719以下程序的运行结果是:#include "stdio.h"main(){int a[][3]={{1,2,3},{4,5},{6},{0}};printf("%d,%d,%d\n",a[1][1],a[2][1],a[3][1]); }A. 3,2,1B. 5,0,0C. 4,1,0D. 1,5,020下面程序的运行结果是:#include "stdio.h"main(){int a[10]={2,4,6,8,10,12,14,16,18},*p;p=a+5;printf ("%d,%d\n",*(p+1),*++p+1); }A. 16,15B. 14,16C. 16,18D. 15,1421以下程序的输出结果是:#include "stdio.h"fun2( int a,int b){ int c;c=a*b%3;fun1(int a,int b){ int c;a+=a;b+=b;c=fun2(a,b);return c*c;}main(){ int x=11,y=19;printf("%d\n", fun1(x,y));}A. 3B. 5C. 4D. 622以下程序运行后的输出结果是?#include "stdio.h"#define SQR(x) x*xmain(){ int a,k=3;a=++SQR(k+1);printf("%d\n",a); }A. 7B. 8C. 9D. 1023执行语句for(i=10;i>0;i--);后,变量i的值为:A. 10B. 0C. 9D. 124下列i,j,k 均为整型变量,选项中不正确的C语言赋值语句是:A. i+1=k;B. i=j=k=1;C. i=j+=++k;D. j=i+1==i++;25设有语句int a[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则不能对a数组元素的正确引用是:A. a[p-a]B. *(*(a+5))C. p[5]D. *(&a[5])26已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是:A. 数组a和b的元素个数相同B. a数组元素少于b数组C. a数组元素多于b数组D. 上述说法都不对27以写方式打开二进制文件my.dat的正确写法是:A. fopen(“my.dat”,”rb”);B. fopen(“my.dat”,”r”);C. fopen(“my.dat”,”wb”);D. fopen(“my.dat”,”w”);28对于定义struct sa{int x;float y;}data,*p=&data;请从下列候选答案中,选择变量data的x成员的正确引用:A. (*p).dataB. (*p).xC. p->data.xD. p.data.x29循环语句的循环体中执行continue语句,其作用是:A. 立即终止程序执行B. 继续执行continue语句之后的循环体各语句C. 结束本次循环D. 跳出循环30定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用:A. scanf(“%f”,&a);B. scanf(“%5.2f”,a);C. scanf(“%6.2f”,&a);D.scanf(“%f”,a);选择题(2)1.以下叙述正确的是A. C语言程序是由过程和函数组成的B. C语言函数可以嵌套调用,例如:fun(fun(x))C. C语言函数不可以单独编译D. C语言中除了main函数,其他函数不可作为单独文件形式存在2以下关于C语言的叙述中正确的是A. C语言中的注释不可以夹在变量名或关键字的中间B. C语言中的变量可以在使用之前的任何位置进行定义C. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致D. C语言的数值常量中夹带空格不影响常量值的正确表示3以下C语言用户标识符中,不合法的是A. _1B. AaBcC. a_bD. a-b4若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是A. a=a++,i++;B. i=(a+k)<=(i+k);C. i=a%11;D. i=!a;5有以下程序#include<stdio.h>main() {char a,b,c,d; scanf("%c%c",&a,&b);c=getchar(); d=getchar();printf("%c%c%c%c\n",a,b,c,d);}当执行程序时,按下列方式输入数据:(<CR>代表回车)12<CR>34<CR>则输出结果是A. 1234B. 12C. 123D. 12346以i关于C语言数据类型使用的叙述中错误的是A. 若要准确无误差的表示自然数,应使用整数类型B. 若要保存带有多位小数的数据,应使用双精度类型C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型7若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A. 1B. 0C. 2D. 不知道a的值,不能确定8以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是A. switch(a){case:a=b;break;default:a++;}B. switch(a==1){case 0:a=b;break;case 1:a++;}C. switch(a){default:a++;break;case 1:a=b;}D. switch(a==1){case 1:a=b;break;case 0:a++;}9有如下嵌套的if语句if (a<b)if(a<c)k=a;else k=c;elseif(b<c) k=b;else k=c;10以下选项中与上述if语句等价的语句是A. k=(a<b)?a:b;k=(b<c)?b:c;B. k=(a<b)?((b<c)?a:b):((b>c)?b:c);C. k=(a<b)?((a<c)?a:):((b<c)?b:c)D. k=(a<b)?a:b;k=(a<c)?a:c;11有以下程序#include<s七dio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A. m=6B. m=4C. m=2D. m=512有以下程序#include<stdio.h>main(){int a=l,b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A. 9,18B. 8,11C. 7,11D. 10,1413有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A. 12B. 11C. 10D. 914以下关于return语句的叙述中正确的是A. 一个自定义函数中必须有一条return语句B. 一个自定义函数中可以根据不同情况设置多条return语句C. 定义成void类型的函数中可以有带返回值的return语句D. 没有return语句的自定义函数在执行结束时不能返回到调用处15下列语句组中,正确的是A. char *s;s="Olympic";B. char s[7];s="Olympic";C. char *s;s={"Olympic"};D. char s[7];s={"Olympic"};16下列选项中,能正确定义数组的语句是A. int num[0..2008];B. int num[];C. int N=2008;int num[N];D. #define N 2008int num[N];17有以下程序#include <stdio.h>void fun(char *c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A. b,B,b,AB. b,B,B,AC. a,B,B,aD. a,B,a,B18若有定义int(*Pt)[3];,则下列说法正确的是[D]A. 定义了基类型为int的三个指针变量B. 定义了基类型为int的具有三个元素的指针数组ptC. 定义了一个名为*pt、具有三个元素的整型数组D. 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组19设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A. (*s)[3]B. *(s+3)C. *s[3]D. *s+320有以下程序#include<stdio.h>main(){int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++) s=s+a[b[i]];printf("%d\n",s);}程序运行后的输出结果是A. 6B. 10C. 11D. 1521有以下程序#include <stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=1;j++) t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A. 1B. 3C. 2D. 522若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A. 5 5B. 10 5C. 10 7D. 5 823有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是A. 1313B. 2234C. 3234D. 123424有以下程序#include <stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是A. 4B. 10C. 14D. 625有以下程序#include <stdio.h>int fun(){ static int x=1;x=x*2; return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf("%d\n",s);}程序运行后的输出结果是A. 0B. 1C. 4D. 826有以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A. 0B. -12C. -20D. 1027设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A. data2=data1;B. data2=(2,6)C. data2.real=data1.real;D. data2.real=data1.unreal;28有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是A. 1001,zhangDa,1098.0B. 1002,changRong,1202.0C. 1001,ehangRong,1098.0D. 1002,ZhangDa,1202.029有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;} s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A. *pw.year=1980;B. w.year=1980;C. pw->year=1980;D. w.s.year=1980;30有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A. 0B. 1C. 2D. 331有以下程序#include <stdio.h>main(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A. abcB. 28cC. 28D.因类型不一致而出错选择题(3)1、以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中3以下选项中不属于字符常量的是:A. ′C′B. "C"C. ′\xCC′D. ′\072′4设变量已正确定义并赋值,以下正确的表达式是:A. x=y*5=x+zB. int(15.8%5)C. x=y+z+5,++yD. x=25%5.05以下定义语句中正确的是:A. 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;6有以下程序段char ch; int x;ch=′A′; x=20;printf("%c,%d,",ch,ch,x); printf("x=%d\n",x,ch);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是:A. 因变量类型与格式描述符的类型不匹配输出无定值B. 输出项与格式描述符个数不符,输出为零值或不定值C. A,65,12x=20D. A,65,x=207已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是:A. kk>=′A′&& kk<=′Z′B. !(kk>=′A′||kk<=′Z′)C. (kk+32)>=′a′&&(kk+32)<=′Z′D. isalpha(kk)&&(kk<91)8当变量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)9以下不构成无限循环的语句或语句组是:A. n=0; do{++n;}while(n<=0);B. n=0; while(1){n++;}C. n=10; while(n);{n--;}D. for(n=0,i=1; ;i++)n+=i;10以下错误的定义语句是: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};11设有如下程序段char s[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述正确的是:A. 可以用*p表示s[0]B. s数组中元素的个数和p所指字符串长度相等C. s和p都是指针变量D. )数组s中的内容和指针变量p中的内容相同12若有定义:int x[4][5];,以下选项中对x数组元素正确引用的是:A. x[4][0]B. x[3][5]C. x[4][4]D. x[2>4][!3]13有定义语句:char str[10];,若要从终端给str输入8个字符,错误的输入语句是:A. gets(&s[0]);B. scanf("%s",s+1);C. gets(s);D. scanf("%s",s[1]);14以下叙述中错误的是:A. 在程序中凡是以"#"开始的语句行都是预处理命令行B. 预处理命令行的最后不能以分号表示结束C. #define MAX是合法的宏定义命令行D. C程序对预处理命令行的处理是在程序执行的过程中进行的15以下结构体类型说明和变量定义中正确的是A. typedef strct{int n; char c;}REC;REC t1,t2;B. typedef strct{int n; char c;};REC t1,t2;C. strct{int n; char c;}REC;REC t1,t2;D. typedef strct REC;{int n=0; char c;}t1,t2;16以下叙述中错误的是:A. gets函数用于从终端读入字符串B. getchar函数用于从磁盘文件读入字符C. fputs函数用于把字符串输出到文件D. fwrite函数用于以二进制形式输出数据到文件17变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。

C语言模拟题

C语言模拟题

C语言模拟题〔一〕一、选择题1、以下字符中不是转义字符的是〔A 〕。

A、'\c'B、'\b'C、'\\'D、'\a'2、设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为〔A〕。

A、0B、144C、132D、123、已定义float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是(C ).y+x=4.62,y-x=2.12A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);,lC、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);4 、执行下面程序段后,b的值为(A ).int s=35;char t='A';int b;b=((s&&4)&&(t<'a'));A、1B、3C、2D、05 k是整型,那么以下程序段的执行结果是:(B )k=-3;if(k<=0) printf("####")else printf("&&&&");A、####B、有语法错误,无结果C、&&&&D、####&&&&6 设j和k都是int类型,那么下面的for循环语句〔D〕。

for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);A、最多执行9次B、是无限循环C、循环体一次也不执行D、最多执行10次7 以下正确的描述是(A ).A、只能在循环体内和switch语句内使用break语句B、continue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用goto语句D、在循环体内使用break和continue语句的作用一样8 以下能对一维数组a进展正确初始化的语句是〔B〕。

c语言模拟考试题及答案

c语言模拟考试题及答案

c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。

答案:continue4. C语言中,使用________关键字可以立即退出循环。

c语言考试题及答案

c语言考试题及答案

c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。

答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。

C语言考试模拟试题

C语言考试模拟试题

1 y 0 1 1. 编程,从键盘输入 x 的值,输出
x0 x0 x0
Hale Waihona Puke 的值,要求用 if 语句实现。 2. 编程,求 1!+2!+3!+...+n!的值。 3. 编程,从键盘任意输入 10 个数,用起泡法对这 10 个数排序。
9. 14.要求字符数组 a 中字符串的长度可用
10. 关系表达式 0<y<1,用 C 语言的表达式为 (y>0&&y<1) 11. 若有如下定义,int a[10];则 a 数组元素的下标上限是 9 12. 若已知 a=10,b=20,则表达式!a<b 的值为__1___ 13. 设 int a=5,b=6,表达式(++a==b--)?++a:--b 的值是_7____
一、选择题 1. 关于 C 语言的主函数描述正确的是 A)C 程序可以有多个 main 函数 能有一个 main 函数 C)C 程序可以没有 main 函数 main 函数开始执行
B)C 程序必有一个而且只 D)C 程序的执行不一定在
2. C 语言中用于结构化程序设计的 3 种基本结构是 A) 顺序结构、 选择结构、 循环结构 C)for,while,do-while 3. C 语言中最简单的数据类型包括 A)整型、实型、逻辑型 C)整型、字符型、逻辑型 B)整型、实型、字符型 D)字符型、实型、逻辑型 B) if,switch,break D)if,for,continue
14.
表达式 3.6-5/2+1.2+5%2 的值是__3.8___。
15. 以下程序输出的结果是__1___。 main() { int a=5,b=4; d=(a>b>c); printf("%d\n",d); } 16. 若 a=1,b=2,则表达式 a>b?a:b+1 的值为 3 17. 已知字母 A 在 ASCII 代码中的序号为 65,下列程序的输出结果 是 main ( {char 。 ) cl=’A’c2=’Y’ ;

c语言考试题及答案原创

c语言考试题及答案原创

c语言考试题及答案原创一、选择题1. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中合法的变量名?A. _nameB. name2C. 2ndNameD. name$答案:D3. C语言中,用于声明一个函数的关键字是:A. defineB. functionC. voidD. int答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是____。

答案:int2. C语言中,用于定义一个浮点型变量的关键字是____。

答案:float3. 在C语言中,用于定义一个字符型变量的关键字是____。

答案:char三、简答题1. 请简述C语言中数组和指针的关系。

答案:在C语言中,数组名可以作为指向数组首元素的指针使用。

指针可以用于访问数组元素,也可以用于数组的遍历。

2. 解释C语言中宏定义的作用。

答案:宏定义在C语言中用于创建一个符号常量,它允许程序员使用一个名字来代表一个字符串。

宏定义通常用于定义常量值,以便于代码的维护和修改。

四、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```答案:该程序通过循环遍历1到100的整数,检查每个数是否为偶数,如果是,则累加到变量`sum`中,最后输出100以内所有偶数的和。

2. 编写一个C语言程序,实现字符串反转。

```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```答案:该程序定义了一个`reverseString`函数,用于反转传入的字符串。

C语言模拟试题(答案)

C语言模拟试题(答案)

一、选择题1.有如下程序:main(){ int a=1,b=2;a+=b;b=a-b;a-=b;printf("%d,%d\n",a,b);}该程序的输出结果是【】。

A.1,2 B.2,1 C.2,2 D.3,22.有以下程序:main(){ int i;for(i=0;i<3;i++)switch(i){case 1:printf("%d",i);case 2:printf("%d",i);default:printf("%d",i);}}执行后输出的结果是【】。

A.011122 B.012 C.012020 D.120。

3.有以下程序:main(){ int a=5,b=4,c=6,d;printf("%d\n",d=a>b?(a>c?a:c):(b));}执行后输出结果是【】。

A.5 B.4 C.6 D.不确定4.有如下程序: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("%2d",f(a));}该程序的输出结果是【】。

A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 85.有如下程序段:main(){ int a,b,c=246;a=c/100%9;b=(-1) && (-1);printf("%d,%d\n",a,b);}输出结果是【】。

A.2,1 B. 3,2 C. 4,3 D. 2,-16.有如下程序:main(){ char str[ ][20]={"Hello","Beijing"}, *p=str;printf("%d\n",strlen(p+22));}该程序的输出结果是【】。

C语言模拟题十套附答案

C语言模拟题十套附答案

第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置(C)A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由(B)括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是(D)A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5B. 1E5.1C. …a12‟D. 32766L15、以下(D)是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下(C)是正确的字符常量A. “c”B. …//”C. …W‟D. “\32a”17、以下(A)是不正确的字符串常量A. …abc‟B. “12‟12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码B. 反码C. 补码D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是(D)A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2B. x=(y==1)C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成(可是是字母和数字组合)D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5B. 1C. 6D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. …A‟与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)C. …A‟*‟B‟是不合法的D. “A”+”B”是合法的只能字符间运算37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)A. 1B. 0C. 6D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A. 1B. 0C. 2D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A. 7B. 8C. 9D. 10 (i++要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A. 8B. 6C. 7D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A. 4B. 5C. 6D. 7 ( i先运算再--44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a);B. scanf(“%l f”,&a);不可能是实数C. scanf(“%c”,&a);D. scanf(“%u”,&a);十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是(A)int a=0,b=0,c=0;if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是()void main(){int a=65;c har c=‟A‟;printf(“%x,%d”,a ,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为(A)A. 1B. tC. 0D. f (有符号的比较,按负数进行比较)59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不是零就是一A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为()A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。

C语言考试模拟题

C语言考试模拟题
{ int a=3,b=5,c;
c=2*MIN(a,b);
printf(“%d”,c);
}
A 3 B 5 C 10 D 6
19、 语句k=(m=3,n=++m);运行后,变量k,m,n的值依次为(4,4,4 )
A 5,6,5 B 6,6,6 C 5,5,6 D 6,6,5
B”#DEFINE PRICE=30 “定义了与30等价的符号常量PRICE,
C 一个源程序只能有一个编译预处理命令行,
D编译预处理命令行都必须以”#”开头.
13、 以下叙述错误的是( )
A一个指针变量只能指向类型相同的变量.
B存放地址的变量称为指针变量.
C NULL可以赋值给任何类型的指针变量
#include<stdio.h>
int a=2,b=3,c=5;
int fun(int a,int b)
{ int c;
c=a>b?a,b;
return(c);
}
main()
{
int a=6;
printf("%d",fun(fun(a,b),c));
}
A、6,5 B、3,5 C、6 D、5
30. 已定义 int m= ‘A’; 则正确的表达式是()。
A. 2*m=m++ B. m%3 C. m=m-m=m-5 D. m=int(-3.2)
31. 以下程序运行的结果是()。
Void main()
{ int x,y,z,a;
x=y=z=1; a=15;
20、 若以定义double y ,从键盘输入一个值赋给变量y,则正确的函数调用是( )

C语言模拟试题(完整版)

C语言模拟试题(完整版)
*(p+i)
=========或=========
*(i+p)
=======(答案4)=======
*p==0
=========或=========
0==*p
第2题 (15.0分)
/*-------------------------------------------------------
第2题 (15.0分)
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:以下程序能求出满足条件:1*1+2*2+......+n*n<=1000中的
【程序填空】
---------------------------------------------------------
功能:输入某年某月某日,判断这一天是这一年的第几天?
-------------------------------------------------------*/
if(【?】!=0) k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
/***********SPACE***********/
while(【?】) p++;
最大的n。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

c模拟考试练习题

c模拟考试练习题

c模拟考试练习题第一节:选择题1. 下列哪个是C语言的关键字?A. intB. printC. ifD. for2. 在C语言中,以下哪个运算符用于比较两个值是否相等?A. ==B. =C. >D. +3. 下面哪个选项表示在C语言中进行输出操作的函数?A. scanfB. inputC. printfD. print4. 在C语言中,以下哪个数据类型用于存储整数?A. floatB. charC. doubleD. int5. 以下哪个操作符用于在C语言中获取一个变量的地址?A. %B. *C. &D. /第二节:填空题1. 下面哪个选项是C语言中表示单行注释的符号?______2. 以下哪个函数用于从标准输入读取字符?______3. 在C语言中,以下哪个预处理器指令用于包含头文件?______4. 声明一个整型指针的关键字是______。

5. 在C语言中,使用______语句可以根据条件选择性地执行一段代码。

第三节:编程题编写一个简单的C程序,要求实现以下功能:1. 定义一个整型变量x,并赋值为10。

2. 输出x的值。

3. 利用循环语句将x的值累加5次,并输出累加后的结果。

4. 将x的值乘以2,并将结果保存在x中。

5. 输出乘法后的x的值。

```c#include <stdio.h>int main() {int x = 10;printf("x的初始值为:%d\n", x);for (int i = 0; i < 5; i++) {x += 1;}printf("累加5次后的x的值为:%d\n", x);x *= 2;printf("乘以2后的x的值为:%d\n", x);return 0;}```总结:本文主要是c模拟考试练习题,分为选择题、填空题和编程题三个部分。

通过这些题目的练习,读者可以巩固C语言的基础知识和编程能力。

C语言模拟题目及答案

C语言模拟题目及答案

C语言模拟题目及答案一.选择题:1.设float x,y;则以下不合法的赋值语句是______。

x*=y+8; x=y=0; ++x; y=(x%2)/10;2. 设int k=017,g=111; 执行语句printf("%d,%x",k,g); 的输出是_____。

15,6f f,6f f,111 15,111 3. 对语句for(i=0; ; i++);可理解为_____。

for(i=0;0;i++); for(i=0;!0;i++); for(i=0;3>4;i++); for(i=0;!5;i++);4. 下面对数组的初始化,错误的是_____。

char s[5]="abc"; char s[5]={'a','b','c'}; char s[5]=" "; char s[5];s="abc";5. 设有程序段:int k=10;while(k=0)k=k-1;则下面描述中正确的是______。

是无限循环 while循环执行10次循环体语句一次也不执行循环体语句只执行一次6. 如果x为int型且为5,则执行if(x--<5) printf("%d",x);else printf("%d",x++);后输出结果是______。

3 4 5 6 7. 有如下函数调用语句func(rec1, rec2+rec3, (rec4, rec5));,该函数调用语句中,含有的实参个数是____。

3 4 5 有语法错8. 在C语言的if语句中,可用作条件判断的表达式为_____。

算术表达式逻辑表达式关系表达式任意表达式9. 若给定条件表达式(n)?(c++):(c--),则与表达式中(n)等价的表达式是_____。

n==0 n==1 n!=0 n!=1 10. 一个函数返回值的类型取决于_____。

c语言考试模拟

c语言考试模拟
D、C语言中的文本文件以ASCII码形式存储数据
二、填空题(请勿改动主函数和其他函数中的内容,仅在方框中填入所编写的若干表达式或语句。)(1道小题,共15分)
补充main函数,该函数的功能是:从键盘输入3个整数,然后找出最大数并输出。
#include<stdlib.h>
#include <stdio.h>
A、int
B、double
C、void
D、char
10、下面关于递归的说法错误的是( )。(1分)
A、每次当一个递归函数被调用时, 程序首先应该检查其些基本的条件是否满足了, 例如某个参数的值等于零, 函数应停止递归;
B、每次当函数被递归调用时, 传递给函数一个或多个参数, 应该以某种方式变得"更简单";
;
if(max<x)
;
printf("max=%d\n",max);
}
(15分)
三、编程题(3道小题,共70分)
1、编写程序,计算并输出下面数列中前n(设n=20)项的和。
1*2,2*3,3*4,4*5,……,n*(n+1),……
(20分)
必须将本题程序最后的运行结果填入下面的框中。否则,该题以零分计!
A、缩排位置相同的if
B、与其之前未配对的if
C、与其之前未配对的最近的if
D、同一行上的if
8、以下叙述中错误的是( )。(1分)语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句
9、在C程序中,若对函数类型未加说明,则函数的隐含类型为( )。(1分)
void main()
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2-11. 设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。
2-12. 编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153 = 13 + 53+ 33
2-13. 用一元人民币兑换成1分、2分和5分硬币,编程,输出所有不同的兑换方法及兑换方法个数。
2-2.口袋中有12个球,其中3红,3白和6黑,从中任取8个球,编程,输出所有不同的取法。输出形式如下:
RED WHITE BLACK
------------------------
1: 0 2 6
2: 0 3 5
。。。。。。。
2-3. 小明有五本不同新书(分别命名为1,2,3,4,5),要借给A、B、C三位小朋友,每人每次必须借一本,编程,输出所有不同的借法。
****
*
*
****
1-9. 编程,输入n值,输出下例(n=5)所示的高为n的图形:
* *
** **
*** ***
**** ****
*********
1-10. 编程,输入n值,输出下例(n=5)所示的高为n的图形:
*********
**** ****
*** ***
** **
* *
1-11. 编程,输入n值,输出下例(n=5)所示的图形:
2-29.一个数如果恰好等于它的各因子(该数本身除外)之和(如:6=3+2+1),则称其为“完数”;若因子之和大于该数,则称其为“盈数”。求出2到60之间所有“完数”和“盈数”,并以如下形式输出:
E: e1 e2 e3 ......(ei为完数)
G: g1 g2 g3 ......(gi为盈数)
2-30.面包bread、奶油butter和咖啡coffee在一起可以组成一个算式:
1-2. 编程,输入n,输出如下例(n=5)所示的图形:
*****
*****
*****
*****
*****
1-3. 编程,输入n值,输出如下例(n=4)所示的图形:
*
***
*****
*******
1-4. 编程,输入n值,输出如下例(n=4)所示的图形:
*******
*****
***
*
1-5. 编程,输入n值,输出如下例(n=4)所示的高和上底均为n的等腰梯形:
B R E A D
B R E A D
+ B U T T E R
C O F F E E
设A、B、C、D、E、F、O、R、T和U均代表数字0~9之一。编程,输出各字母所代表的数字。
2-31.全排有46名战士,会骑马的有30人,会摔跤的有19人,会拳击的有24人。还知道不少人是多面手,会骑马和摔跤的有14人,会摔跤和拳击的有12人,会拳击和骑马的有8人。编程,输出三项全能的有几人?
1
121
12321
1234321
123454321
1-31. 编程,输入n值,输出如下例(n=5)所示的高度为n的数字金字塔:
123454321
1234321
12321
121
1
1-32. 编程,输入n值,输出如下例(n=5)所示的数字菱形。
1
121
12321
1234321
123454321
1234321
****
******
********
**********
1-6. 编程,输入n值,输出如下例(n=4)所示的高和下底均为n的等腰梯形:
**********
********
******
****
1-7. 编程,输入n值,输出如下例(n=4)所示的图形:
****
*
*
****
1-8. 编程,输入n值,输出如下例(n=4)所示的图形:
* *
* *
*
* *
* *
1-27. 编程,输入n值,输出下例(n=4)所示的边长为n的正六边形:
****
* *
* *
* *
* *
* *
****
1-28. 编程,打印下列上三角形式的乘法九九表。
1 2 3 4 5 6 7 8 9
----------------------------
1 2 3 4 5 6 7 8 9
2-4. 100匹马驮100担货,大马一匹驮3担,中马一匹驮2担,小马两匹驮1担。编程,输出所有满足条件的方案(即大、中、小马的数目)。
2-5. 编程,输出所有个位数为6且能被31整除的五位数及其个数。
2-6. 一辆卡车违犯交通规则,撞人逃跑。现场三人目击事件,但都没记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的;丙是位数学家,他说:四位的车号刚好是一个整数的平方。根据以上线索,编程,输出车号。
2-25. 一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15, 最后得到一个商是a的2倍。编程,输出这个自然数。
2-26. 如果一个数恰好等于它的因子之和,则称该数为“完全数”。如:6的因子是1、2、3,而6=1+2+3,则6是个“完全数”。编程,输出1000以内的全部“完全数”。
* *
* *
*
*
*
1-21. 编程,输入n值,输出下例(n=5)所示的图形:
* *
* *
* *
* *
*
1-22. 编程,输入n值,输出下例(n=5)所示的图形:
*
* *
* *
* *
* *
1-23. 编程,输入顶行字符和图形的高。输出如下例(顶行字符为'A',图形的高为5)所示的图形,
A
B C D
E F G H I
2-22.我国古代数学名著<<孙子算经>>中, 提出了闻名于世的“孙子问题”,即:今有物不知其数,三个三个地数,剩二个;五个五个地数,剩三个; 七个七个地数,剩二个。编程,输出该物的个数。
2-23. 编程,任意输入一个偶数n,请将它分解为两个素数之和。输出形式为:*=*+*
2-24. 有一正整数等差数列,其前四项之和是26,前四项之积是880,编程,输出此数列的前四项。
1-14. 编程,输入n值,输出如下例(n=5)所示的图形:
*****
* *
* *
* *
*****
1-15. 编程,输入n值,输出如下例(n=5)所示的图形:
*****
* *
* *
* *
*****
1-16. 编程,输入n值,输出如下例(n=4)所示的图形:
*
* *
* *
*******
1-17. 编程,输入n值,输出如下例(n=4)所示的图形:
1. A和B二人中至少去一人2. A和D不能一起去
3. A、E和F三人中要派二人去4. B和C都去或都不去
5. C和D两人中去一个6. 若D不去,则E也不去
编程,输出选中的人选。
2-34.有A、B、C、D、E,每人额头上贴了一张或黑或白的纸。5人对坐,都可看到其他人的颜色,但都不知道自己的颜色。5人相互观察:
2-14. 编程,从键盘输入1个人的工资(1000—9999之间的整数),计算给这个人发工资时,需面值100元,50元,20元,10元,5元,2元和1元的人民币各多少张?输出尽可能使用大面值人民币的10种方案。
2-15. 编程,输出555555的约数中最大的三位数。
2-16. 编程,输出1000到100000之间所有满足下列条件的所有整数及其个数:整数的各位数字之和等于5。
81
86 72
49 56 63
36 42 48 54
25 30 35 40 45
16 20 24 28 32 36
9 14 15 18 21 24 27
4 6 8 10 12 14 16 18
1 2 3 4 5 6 7 8 9
1-30. 编程,输入n值,输出如下例(n=5)所示的高度为n的数字金字塔:
2-9.我国明代数学家程大位写了一本《算法统宗》,里面有一题:一百馒头一百僧,大僧三个,小僧三人分一个,大小僧各几丁?编程,输出大僧和小僧的人数。
2-10.一个马戏团表演, 120个座位全满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。编程,输出男人、女人和小孩各有多少人。
2-32.三对情侣参加婚礼,三个新郎为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在说假话。编程,输出谁将和谁结婚。
2-33.某侦察队接到一项紧急任务,要求在A、B、C、D、E、F 六个队员中尽可能多地挑若干人,但有以下限制条件:
2-27. 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,编程,输出这个三位数。
2-28. 如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。
4 6 8 10 12 14 16 18
9 14 15 18 21 24 27
16 20 24 28 32 36
25 30 Leabharlann 5 40 4536 42 48 54
49 56 63
86 72
81
1-29. 编程,打印下列乘法九九表。
1 2 3 4 5 6 7 8 9
相关文档
最新文档