欢迎访问南京大学宁波党校学习中心,宁波网络教育,宁波成人教育,宁波专升本,宁波学历教育支持服务平台。

南京大学宁波学习中心服务平台

首页 > 辅导资料 > 学科作业

学科作业

《程序设计基础》作业题库

发布时间:2021-01-25 10:54:42 学科作业 [复制链接]
作业题库来自《程序设计基础》课后的随机抽题,不能完全覆盖所有题目,但基本上能保障完成作业。大家如发现有新的题目不在本题库,欢迎投稿并完善本题库。...
题号:1   题型:单选题
以下程序执行时输出结果为() #include<stdio.h> void main() { int a=13,b,s=0; while(a) { b=a%2; s=s+b; printf("%d",b); a=a/2; } printf(",%d\n",s); }
 A、1011,3
 B、1101,3
 C、11001,3
 D、101,2
正确答案:A
 
  题号:2   题型:单选题
以下关于语句的说法中,正确的是()。
 A、do-while语句的循环体至少会被执行1次
 B、while语句的循环体至少会被执行1次
 C、for语句的循环体至少会被执行1次
 D、在C语言中只能用while、do-while和for语句实现循环结构
正确答案:A
 
  题号:3   题型:单选题
以下描述不正确是()。
 A、在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环
 B、continue只能出现在循环结构中
 C、continue只能出现在循环结构或switch结构中
 D、在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环
正确答案:C
 
  题号:4   题型:单选题
已知有声明:char c=’1’; int x=300; float t=35000; double d=3.1234567e10;, 则以下表达式求值时除()外其结果都可能是不准确的。
 A、x=t/c
 B、t=d/x
 C、t=d/1e5f
 D、t=x+c
正确答案:D
 
  题号:5   题型:单选题
已知有声明:int x=1,y=2,z=3;以下表达式中,表达式的值为0的是()。 ①x/y ②!!x ③x==2 ④x=2 ⑤y--,y-- ⑥z>y>x
 A、①③⑥
 B、②④⑤
 C、①③⑤
 D、 ②③⑥
正确答案:A
 
  题号:6   题型:单选题
以下常量中,()是符合语法要求的。 ①0218 ②’\0x1a’ ③E-9 ④3.5f ⑤(1/2)e-2 ⑥3L ⑦0xFF
 A、①②③
 B、③⑤
 C、②④⑦
 D、④⑥⑦
正确答案:D
 
  题号:7   题型:单选题
可以用signed和unsigned 修饰的类型标识符是()。 ①int ②float ③double ④char
 A、①④
 B、②③
 C、①②
 D、①②③④
正确答案:A
 
  题号:8   题型:单选题
设有定义 float y=3.45678; int x; 则以下表达式中能实现将y中数值保留到小数点后2位,第3位四舍五入的表达式是()。
 A、y=(y*100+0.5)/100.0
 B、x=y*100+0.5, y=x/100.0
 C、y=y*100+0.5/100.0
 D、y=(y/100+0.5)*100.0
正确答案:B
 
  题号:9   题型:单选题
已知有声明语句:int x=1; float z=1.5; 以下表达式中表达式值的类型为int的是()。
 A、x>=1
 B、z=2
 C、3+2.5
 D、(float)(++x)
正确答案:A
 
  题号:10   题型:单选题
C语言中要求两个操作数都必须是整型数的运算符是()。
 A、==
 B、+
 C、/
 D、%
正确答案:D
 
  题号:11   题型:单选题
以下语句中正确的是( ;)。
 A、printf(“%c”,‘\x33A’)
 B、printf(“%d”,33A)
 C、printf(“%d”,033A)
 D、printf(“%d”,0x33A)
正确答案:D
 
  题号:12   题型:单选题 
以下局部变量声明中,正确的是( ;)。
 A、int 2x=1,2y=0
 B、auto float x=2,y=sqrt(x)
 C、char for=1
 D、double f’=1.0
正确答案:B
 
  题号:13   题型:单选题
在16位PC机中以下程序段执行后,x,y的值为()。 unsigned x=0x7f41; int y; x+=0277;y=x;
 A、32768,32768
 B、32768,-32768
 C、-32768,32768
 D、-32768,-32768
正确答案:B
 
  题号:14   题型:单选题
若 x、i、j和k都是int型变量,则计算下面表达式x=(i=4,j=16,k=32)后,x的值为()。
 A、4
 B、16
 C、32
 D、1
正确答案:C
 
  题号:15   题型:单选题
字符串“\t\"Name\\Address\n”,在内存中需()个字节
 A、19
 B、15
 C、16
 D、17
正确答案:C
 
  题号:16   题型:单选题
已知变量声明:int w; long x, float y; double z; ,则以下语句在执行时,只有( ;)能将键盘输入的值正确地送入到w,x,y,z各变量中。
 A、scanf(“%d%d%d%d”,&w, &x,&y,&z)
 B、scanf(“%d%d%f%f”,&w,&x,&y,&z )
 C、scanf(“%d%ld%f%lf”,&w,&x, &y,&z)
 D、scanf(“%d%ld%f%lf”,w,x, y,z)
正确答案:C
 
  题号:17   题型:单选题
下面程序的输出结果是(D) #include <stdio.h> main() { int x=-1, y=4, t; t=(++x<0) && (y--<=0); printf(“%d,%d,%d\n”,x,y,t); }
 A、3, 0, 0
 B、4, 0, 1
 C、3, 0, 1
 D、0, 4, 0
正确答案:D
 
  题号:18   题型:单选题
已知有char c;scanf(“%c”,&c);以下表达式均用于判断c中存储的是否是字母编码,除()外都是正确的。
 A、c>=’A’&& c<=’z’
 B、c>=’A’&& c<=’Z’|| c>=’a’&& c<=’z’
 C、!(c<'A'||c>'Z'&&c<'a'||c>'z')
 D、c>=65 && c<=90 || c>=97 && c<=122
正确答案:A
 
  题号:19   题型:单选题
已有声明:int x=0,y=0,z=0; 以下表达式中与 ++x&&y++||++z的值不一样的表达式是()。
 A、(x+=++x) || x++
 B、x=y=z
 C、!x
 D、x>=y>z
正确答案:B
 
  题号:20   题型:单选题
以下表达式中,可以正确地用于if(e)语句中的条件表达式e是 ()。
 A、x==++(x+1)
 B、x+=++x || x++
 C、x+1=z
 D、x%2.0!=0
正确答案:B
 
  题号:21   题型:单选题
以下单目运算符中要求操作数不能是常量(例如2)的是()。
 A、sizeof
 B、!
 C、(数据类型)
 D、++
正确答案:D
 
  题号:22   题型:单选题
与语句while(!x) 等价的语句是()。
 A、while(x==0)
 B、while(x!=0)
 C、while(x!=1)
 D、while(x)
正确答案:A
 
  题号:23   题型:单选题
C语言表示逻辑假的值是()。
 A、非零整数值
 B、0
 C、1
 D、FALSE
正确答案:B
 
  题号:24   题型:单选题
执行了以下程序段后x,w的值为()。 int x=0,y=1,z=2,w; if(x++)w=x; else if(x++&&y>=1)w=y; else if(x++&&z>1)w=z;
 A、0,1
 B、1,1
 C、,1
 D、.3,2
正确答案:C
 
  题号:25   题型:单选题
若w=1,x=2,y=3,z=4;则条件表达式 w>x?x--:y<z?y--:++z结果为()。
 A、4
 B、3
 C、2
 D、1
正确答案:B
 
  题号:26   题型:单选题
一个正确的C源程序中,()是不能缺少的。
 A、#include<stdio.h>
 B、main函数的定义
 C、注释
 D、全局变量声明
正确答案:B
 
  题号:27   题型:单选题 
以下叙述正确的是 ()。
 A、在程序运行时main函数是唯一被操作系统自动调用执行的函数
 B、main函数是系统函数
 C、main函数中每行只能出现一条语句
 D、main函数必须出现在所有其他函数之前
正确答案:A
 
  题号:28   题型:多选题
算法的三种基本结构是 ()。
 A、顺序
 B、选择
 C、复合
 D、循环
正确答案:ABD
 
  题号:29   题型:判断题
已知有声明int a=1.5;float b=2.5;double c=3.5;long d; 则表达式c=d=++a+b++的值是4.0
 1、 错
 2、 对
正确答案:2
 
  题号:30   题型:判断题
在16位PC机中执行long a;int b=32767;a=b+2;后,a的值为32769
 1、 错
 2、 对
正确答案:1
 
  题号:31   题型:判断题
C源程序的基本单位是函数。
 1、 错
 2、 对
正确答案:2
 
  题号:32   题型:单选题 
以下跳转语句中除()外,其跳转的目的地都仅限于跳转语句所在的函数体内。
 A、continue
 B、break
 C、goto
 D、 return
正确答案:D
 
  题号:33  题型:单选题 
函数形参的存储类型只能说明为()。
 A、auto或register
 B、extern或static
 C、auto或static
 D、auto或extern
正确答案:A
 
  题号:34   题型:单选题 
如果一个函数只限于被同一源程序文件中的其它函数调用,不允许被其它源程序文件中的函数调用,则在定义该函数时应在其函数头部加上()标识符。
 A、static
 B、extern
 C、auto
 D、register
正确答案:A
 
  题号:35   题型:单选题 
关于全局变量,以下叙述中正确的是 ()。
 A、可以在所有函数中对一个全局变量做赋值或引用操作
 B、全局变量不能与某个函数的形参变量同名
 C、全局变量声明语句可以放在源程序文件中的任何位置
 D、全局变量的初值有时是不确定的
正确答案:C
 
  题号:36   题型:单选题 
若用一个一维数组的数组名作为函数调用时的实参,则实际传给函数形参的是()。
 A、该数组全部元素的值
 B、该数组第一个元素的值
 C、该数组第一个元素的地址
 D、该数组的元素个数
正确答案:C
 
  题号:37   题型:单选题 
已知一个函数的定义如下,该函数的返回值类型为()。 fun(float x,double y) { return x+y; }
 A、double
 B、float
 C、int
 D、void
正确答案:C
 
  题号:38   题型:单选题 
函数调用时若传给函数的实参类型与接受该实参值的形参类型不一致时,()
 A、系统自动将实参类型转为对应的形参类型
 B、系统自动将形参类型转为对应的实参类型
 C、必须对实参加上强制类型转换运算符
 D、实参不做类型转换直接传给形参
正确答案:A
 
  题号:39   题型:单选题 
关于带参数的宏,以下叙述中错误的是()。
 A、带参数的宏能实现的功能函数也一定能实现
 B、函数能实现的功能带参数的宏也一定能实现
 C、使用带参数的宏比使用函数节省运行时间
 D、使用函数比使用带参数的宏节省存储空间
正确答案:B
 
  题号:40   题型:单选题 
若有声明语句int a[3]={1,2,3},以下表达式中正确的是()。
 A、a[a[0]=2]+=2
 B、a = 0
 C、++(a[0]+1)
 D、&a[0] = a
正确答案:A
 
  题号:41   题型:单选题 
以下声明中正确的是()。
 A、int n=10,a[n]
 B、int a[][10]={0},(*p)[10]=a
 C、int n,*p=n
 D、int n=10,a[10]={n}
正确答案:B
 
  题号:42   题型:单选题 
已知有声明:char c=’1’; int x=300; float t=35000; double d=3.1234567e10;,则以下表达式求值时除()外其结果都可能是不准确的。
 A、x=t/c
 B、t=d/x
 C、t=d/1e5f
 D、t=x+c
正确答案:D
 
  题号:43   题型:单选题 
设有定义 float y=3.45678; int x; 则以下表达式中能实现将y中数值保留到小数点后2位,第3位四舍五入的表达式是()。
 A、y=(y*100+0.5)/100.0
 B、x=y*100+0.5, y=x/100.0
 C、y=y*100+0.5/100.0
 D、y=(y/100+0.5)*100.0
正确答案:B
 
  题号:44   题型:单选题 
若有声明语句:char s[]="abc\n\t\101\n\n"; 则s数组共有()个元素。
 A、15
 B、13
 C、10
 D、8
正确答案:D
 
  题号:45  题型:单选题 
C语言中要求两个操作数都必须是整型数的运算符是()。
 A、==
 B、+
 C、/
 D、%
正确答案:D
 
  题号:46   题型:单选题 
对于一个用户自定义函数,以下叙述中()是不正确的。
 A、函数体内任何位置声明的变量不能与该函数的函数名同名
 B、函数体中嵌入的复合语句内声明的变量可以与所在函数的形式参数同名
 C、同一函数体内不同的复合语句中声明的变量可以同名
 D、函数体内任何位置声明的变量都可以与在所有函数之外声明的变量同名
正确答案:A
 
  题号:47   题型:单选题 
已知某程序中有以下片断: #define p 2.5 main() { float x; x=p; 。。。} 则main函数中标识符p代表一个()。
 A、float型变量
 B、double 型变量
 C、 float型常量
 D、double 型常量
正确答案:D
 
  题号:48   题型:单选题 
以下程序片断用于打开一个软盘上已经存在的数据文件out.dat,要求既可以读出文件中原有数据,也可以向文件中写入新的数据以更新原有数据: char mode[5]; FILE *fp; gets(mode); /* 给mode数组赋值 */ fp=fopen(“a:\\out.dat”,mode); 则给mode数组赋值的键盘输入应当为()。
 A、r
 B、r+
 C、w+
 D、a+
正确答案:B
 
  题号:49   题型:单选题 
以下函数中除()外,均是向标准输出流写一个字符a的编码。
 A、fputc(‘a’,stdout)
 B、putchar(‘a’)
 C、printf(“%c”,’a’)
 D、 fprintf(fp,”%d”,‘a’)
正确答案:D
 
  题号:50   题型:单选题 
已有枚举类型定义enum letter{A,B,C=7,D,E};,以下表达式中除()外,其它表达式的机内值均等于10。
 A、‘\xb’-1
 B、B+E
 C、010+2
 D、0xf-3
正确答案:D
 
  题号:51   题型:单选题 
若有声明语句: struct { int x,y; }a={5,10},b={10,15},c,*pa=&a,*pb=&b; 则以下表达式中值不等于5的是()。
 A、c.x = a.x % b.x
 B、pa->y/pb->y - pa->x + pb->x
 C、(a.x<b.x) ? a.x : b.x
 D、c.x=a.x, c.y=a.y
正确答案:D
 
  题号:52   题型:单选题 
数组和链表都可以用于存储一组彼此有关联的数据,以下说法中不正确的是()。
 A、一个数组一定占据一块连续的存储区域,一个链表可能占据若干块不连续的存储区域
 B、数组和链表所占的存储区域不能在程序运行期间动态分配
 C、数组中的数据可以随机存取或顺序存取,链表中的数据只能顺序存取
 D、 数组的长度是固定的,链表的长度是不固定的。
正确答案:B
 
  题号:53   题型:单选题 
设有结构类型定义和结构数组声明如下: typedef struct person { char name[9]; int age; } PERSON; PERSON class[10]={“John” , 17,“Paul” , 19,“Mary”, 18,“Adam”, 16}; 则能输出字母M的语句是()。
 A、printf (“%c\n” ,class[3].name)
 B、printf (“%c\n” , class[3].name[1] )
 C、printf(“%c\n” ,class[2].name[0] )
正确答案:C
 
  题号:54   题型:单选题 
若有定义int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } , *p = a ,i ; ,则对a数组元素的引用不正确的是()( i的取值范围:0到9)。
 A、a[p-a]
 B、*(&a[i])
 C、p[i]
 D、*(*(a+i))
正确答案:D
 
  题号:55   题型:单选题 
已知有声明int a,*b=&a,(*c)[3],*d[3];,则以下表达式中有语法错误的是()。
 A、(&a)[0]= 0
 B、b[0]= 0
 C、c[0]= 0
 D、d[0]= &a
正确答案:C
 
  题号:56   题型:单选题 
已知有声明int joke=1; 表达式"joke"+joke值的类型是 ()。
 A、char
 B、char *
 C、int
 D、int *
正确答案:B
 
  题号:57   题型:单选题 
以下单目运算符均只需要一个操作数,其中要求操作数的类型只能是指针型的是()。
 A、&
 B、++
 C、*
 D、!
正确答案:C
 
  题号:58   题型:单选题 
关于指针的叙述错误的是()。
 A、一个指针只能指向与该指针的基类型有相同类型的变量
 B、指向不同类型变量的指针所占内存的大小相同
 C、数组元素的类型可以是指针类型
 D、int *p[3]和 int (*p)[3]中的p没有区别
正确答案:D
 
  题号:59   题型:单选题 
设有如下声明:char *a[2] = { “abcd” ,”ABCD” } ;以下说法中正确的是()。
 A、a是指针变量,它指向含有两个数组元素的字符型一维数组
 B、a是行指针变量,它指向字符串 ”abcd”
 C、a是指针数组,它的前两个元素中分别存放了字符 ’a’ 和 ‘A’ 的地址
 D、a是指针数组,它的前两个元素分别存放的是存储4个字符的一维数组的首地址
正确答案:C
 
  题号:60   题型:单选题 
已知函数f定义为: void f (int a[2], int *b) { a[0]=*b;} main 函数中有声明语句: int x,y,t[2]={1,2}; 在main函数中需要调用f函数, 则以下函数调用语句中错误的是()。
 A、f(&y,&x)
 B、f(t,t+1)
 C、y=f(&t[0],&x)
 D、f(x,y)
正确答案:D
 
  题号:61   题型:单选题 
若使以下程序没有语法错误并能输出正确结果,p应当声明为()。 main() { p的声明; p="language"; puts(p); }
 A、char p
 B、char p[10]
 C、char *p
 D、char *p[10]
正确答案:C
 
  题号:62   题型:单选题 
若有声明语句int a[4][3]={1,2,3,4,5,6},*p=a[1],(*q)[3]=a;不能够输出6的语句是()。
 A、printf(“%d”,a[1][2])
 B、printf(“%d”,*(p+2))
 C、printf(“%d”,**(q+1))
 D、printf(“%d”,*(*(++q)+2))
正确答案:C
 
  题号:63   题型:单选题 
以下函数的功能是()。 int f(char *x) { int *y=x; while(*y++); return y-x-1; }
 A、字符串复制
 B、计算x指向的字符串长度
 C、比较两个字符串长度
 D、将x指向的字符串连接到y指向的字符串之后
正确答案:B
 
  题号:64   题型:单选题 
以下if语句中正确的是()。
 A、if (a>=b){ m=a; n=b;else n=a;m=b;}
 B、if (a>=b) m=a; n=b;else n=a;m=b;
 C、if (a>=b) m=a, n=b;else n=a,m=b;
 D、if (a>=b){ m=a; n=b;}else (b>a){ n=a;m=b;}
正确答案:C
 
  题号:65   题型:单选题 
一个用C语言编写的源程序中,() 是必不可少的。
 A、取名为main的函数定义
 B、#include<stdio.h>
 C、函数声明或变量声明
 D、注释
正确答案:A
留言与评论(共有 0 条评论)
   
验证码: